AJAX
今天佟刚老师带我们学习了AJAX,AJAX是现在开发的广泛使用的技术,几乎所有的web应用都涉及了该技术,例如,用户名校验,级联下拉列表,下拉树状菜单,在网页无刷新提交等方面有广泛的应用。有前两天的js基础,今天的学习还行
1.什么是Ajax
Ajax被认为是(Asynchronous JavaScript and XML的缩写)。现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax.
Ajax这项技术,是Google在Google Labs发布Google Maps和Google Suggest后真正为人所认识。
Ajax应用实例 - Google Suggest
Ajax应用实例 - Google Maps
框架:如果使用一组框架构造了一个网页,可以只更新其中一个框架,而不必惊动整个页面
隐藏的iframe
XMLHttpRequest:该对象是对 JavaScript 的一个扩展,可使网页与服务器进行通信。是创建 Ajax 应用的最佳选择。实际上通常把 Ajax 当成 XMLHttpRequest 对象的代名词
Ajax的工作原理图
Ajax工具包
Ajax并不是一项新技术,它实际上是几种技术,每种技术各尽其职,以一种全新的方式聚合在一起
XMLHttpRequest最早是在IE5中以ActiveX组件的形式实现的。非W3C标准.
创建XMLHttpRequest对象(由于非标准所以实现方法不统一)
Internet Explorer把XMLHttpRequest实现为一个ActiveX对象
其他浏览器(Firefox、Safari、Opera…)把它实现为一个本地的JavaScript对象。
具体实现流程:先创建XMLHttpRequest对象
//1. 获取 XMLHttpRequest 对象xhr
//2. 发送 Ajax 请求
//2.1 准备请求: 参数1 -- 请求方式, 参数2 -- 请求路径
xhr.open("GET", url);
//2.2 发送请求, 因为是 GET 请求, 所以不需要发送数据
xhr.send(null);
//3当 XMLHttpRequest 对象的 readyState 属性被服务器改变的时候, 触发 onreadystatechange 事件
//3.1当 XMLHttpRequest 对象的 readyState 属性被服务器改变为 4 的时候表示相应已经完成,
if(xhr.readyState == 4){
//相应完成, 可以获取相应信息: 在 XMLHttpRequest 对象的responseText 属性中包含了相应信息
//可以进一步的控制打印时机: 当相应正确返回时, 即返回的信息码为 200 时
if(xhr.status == 200){
alert(xhr.responseText);
}else{
alert("请求异常...");
}
}
常用状态码及其含义:
• 404 没找到页面(not found)
• 403 禁止访问(forbidden)
• 500 内部服务器出错(internal service error)
• 200 一切正常(ok)
• 304 没有被修改(not modified)
接收相应
responseText
• XMLHttpRequest 的 responseText 属性包含了从服务器发送的数据。它是一个HTML,XML或普通文本,这取决于服务器发送的内容。
• 当 readyState 属性值变成 4 时, responseText 属性才可用,表明 Ajax 请求已经结束。
接收相应
responseXML
• 如果服务器返回的是 XML, 那么数据将储存在 responseXML 属性中。
• 只用服务器发送了带有正确首部信息的数据时, responseXML 属性才是可用的。 MIME 类型必须为 text/xml
汇总
数据格式提要
在服务器端 AJAX 是一门与语言无关的技术。在业务逻辑层使用何种服务器端语言都可以。
从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送。服务器端的编程语言只能以如下 3 种格式返回数据:
• XML
• JSON
• HTML
对比小结
若应用程序不需要与其他应用程序共享数据的时候, 使用 HTML 片段来返回数据时最简单的
如果数据需要重用, JSON 文件是个不错的选择, 其在性能和文件大小方面有优势
当远程应用程序未知时, XML 文档是首选, 因为 XML 是 web 服务领域的 “世界语”
jQuery 对 Ajax 操作进行了封装, 在 jQuery 中最底层的方法时 $.ajax(), 第二层是 load(), $.get() 和 $.post(), 第三层是 $.getScript() 和 $.getJSON()
load() 方法
load() 方法是 jQuery 中最为简单和常用的 Ajax 方法, 能载入远程的 HTML 代码并插入到 DOM 中. 它的结构是: load(url[, data][,callback])。
明天继续!
posted on 2010-01-22 00:04
d66380022 阅读(386)
评论(0) 编辑 收藏