什么是 Ajax
Ajax 是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。沟通客户端和服务器,可以在不必刷新整个浏览器的情况下,与服务器进行异步通讯的技术。
Ajax的原理
通过 XMLHTTPRequest 对象来向服务器发异步请求,从服务器获得数据,然后用 JavaScript 来操作 DOM 而更新页面。这其中最关键的一步就是从服务器获得请求数据。
XMLHTTPRequest是 Ajax 的核心机制,它是在 IE5 中首先引入的,是一种支持异步请求的技术,简单来说,也就是 JavaScript 可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果
Ajax的优点和缺点
优点:
- 最大的一点是页面无刷新,用户体验非常好
- 使用异步方式与服务器通信,具有更加迅速的响应能力
- 可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和宽带的负担,节约空间和宽带租用成本,并且减轻服务器的负担, Ajajx 的原则是“按需取数据”,可以最大程度减少冗余请求,和响应对服务器造成的负担
- 基于标准化的并被广泛支持的技术,不需要下载插件或者小程序
缺点:
- Ajax 不支持浏览器
back按钮 - 安全问题,Ajax 暴露了与服务器交互的细节
- 多搜索引擎的支持比较弱
- 破坏了程序的异常机制
XMLHTTPRequest对象的常用方法和属性(补充)
方法
-
open(
String mehod,String url,boolean async,String username,String password)- 该方法创建 HTTP 请求
- 第一个参数是指定提交方式(get、post等)
- 第二个参数是指定要提交的地址是哪
- 第三个参数是指定是异步还是同步(
true表示异步,false表示同步) - 第四个和第五个参数在 HTTP 认证的时候会用到。是可选的
-
send(
content)- 发送请求给服务器
- 如果是 get 方式并不需要填写参数,或填写
null - 如果是 post 方式,把要提交的参数写上去
-
setResquestHeader(
String header,String value)- 设置消息头(使用 post 方式才会使用到,get 方法并不需要调用该方法)
-
getAllRequestHeaders()
-
getResponseHeader(
String header) -
abort()
常用属性
onreadystatechange:请求状态改变的事件触发器(readyState变化时会调用此方法),一般用于指定回调函数
readyState:请求状态 readyState 一改变,回调函数被调用,它有5个状态:
0:未初始化1:open方法成功调用后2:服务器已经答应客户端的请求3:交互中, HTTP 头部信息已经接收,响应数据尚未接收4:完成。数据接收完成responseText:服务器返回的文本内容responseXML: 服务器返回的兼容 DOM 的 XML 内容statusText:服务器返回状态码的文本信息
回调函数是什么?
回调函数就是接收服务器返回的内容