实现网页局部刷新的一种技术(并不是一个新的技术,是对现有的几种技术的整合应用)
全称:Asynchronous JavaScript and XML(异步的JavaScript和XML)
Ajax应用到的技术:
- 基于 DHTML 和 CSS 的标准 Web 页面内容
- 由 DOM(Document Object Model)实现动态显示与交互
- 通过 XML 和 XSLT 进行数据交换以及处理
- 运用 XMLHttpRequest 对象实现异步数据获取(核心)
- 运用 JavaScript 整合上述技术
Javascript:负责创建异步对象,发送请求,更新DOM
XML:网络中传输数据格式,目前使用json代替。
Ajax的强大之处:
实现了网页局部的数据刷新
增强用户和网页交互体验
异步对象 - XMLHttpRequest
异步请求对象:
在局部刷新,Ajax 需要一个核心的异步请求对象,代替浏览器发起请求行为并接受服务端响应的数据,这个对象就是 XMLHttpRequest
对象。
作用
1、 在不重新加载网页的情况下更新网页
2、在网页已加载后向服务器请求数据
3、 在网页已加载后从服务器接收数据
所有市场上浏览器(IE7+、Firefox、Chrome、Sarafi以及Opera)都内建了XMLHttpRequest 对象。
通过JavaScript代码,创建XMLHttpRequest对象
当请求被发送到服务器时,我们需要一个触发事件onreadystatechange来执行一些响应的任务。
当readyState改变时,我们可以为该事件绑定一个function。通过判断XMLHttpRequest对象的状态,获取服务器的数据
存有 XMLHttpRequest 对象的状态。从 0 ~ 4 发生变化。
0 - 请求未初始化,创建异步对象 var xhr = new XMLHttpRequest()
1 - 初始化异步对象,xhr.open(请求方式, 请求地址, true)
2 - 异步对象发送请求,xhr.send()
3 - 异步对象从服务器接收响应数据,内部处理
4 - 数据已经解析完毕。此时才能读取数据。(开发人员需要做的是:更新页面数据)
表示网络请求状态,当status==200时,表示网络请求成功
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
//处理数据,更新页面
}
}
xhr.open(请求方式,“服务器端的访问地址”,“同步或异步”)
xhr.open("get","loginServlet?name=zs&&pwd=123",true)
xhr.send();
xhr.onreadystatechange = function(){
if(xhr.readyState==4 && xhr.status==200){
//处理数据,更新页面
//获取服务器响应的数据
var data = xhr.responseText;
//将响应的数据赋值
document.getElementById("name") = data
}
}
浏览器发送数据给服务器,接收到服务器的数据后,响应返回浏览器显示
注意观察时间点一直木有变,说明页面木有刷新
请输入用户名: