AJAX、Jqeury及JSON教程

上传人:n**** 文档编号:50693404 上传时间:2018-08-10 格式:PPT 页数:44 大小:1.44MB
返回 下载 相关 举报
AJAX、Jqeury及JSON教程_第1页
第1页 / 共44页
AJAX、Jqeury及JSON教程_第2页
第2页 / 共44页
AJAX、Jqeury及JSON教程_第3页
第3页 / 共44页
AJAX、Jqeury及JSON教程_第4页
第4页 / 共44页
AJAX、Jqeury及JSON教程_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《AJAX、Jqeury及JSON教程》由会员分享,可在线阅读,更多相关《AJAX、Jqeury及JSON教程(44页珍藏版)》请在金锄头文库上搜索。

1、AJAX、JQeury及JSON教程什么是AjaxlAjax的技术的产生 Ajax被认为是(Asynchronous JavaScript and XML 的缩写)。现在,允许浏览器与服务器通信而无须 刷新当前页面的技术都被叫做Ajax. “Ajax”这个名字是在2005年2月,Adaptive Path 的Jesse James Garrett在他的文章Ajax:A New Approach to Web Application中创造。 而Ajax这项技术,是Google在Google Labs发布 Google Maps和Google Suggest后真正为人所认识。Ajax应用实例 -

2、Google SuggestAjax应用实例 - Google Maps什么是AjaxlAjax:一种不用刷新整个页面便可与服务器通讯的办法图1 Web的传统模型。客户端向 服务器发送一个请求,服务器 返回整个页面,如此反复图2 在Ajax模型中,数据在客户端与 服务器之间独立传输。服务器不再返 回整个页面什么是Ajaxl不用刷新整个页面便可与服务器通讯的办法: Flash Java applet 框架:如果使用一组框架构造了一个网页,可以只更 新其中一个框架,而不必惊动整个页面 隐藏的iframe XMLHttpRequest:该对象是对 JavaScript 的一个 扩展,可使网页与服务器

3、进行通信。是创建 Ajax 应 用的最佳选择。实际上通常把 Ajax 当成 XMLHttpRequest 对象的代名词 Ajax的工作原理图xhtmlcssJavaScriptAjax工具包lAjax并不是一项新技术,它实际上是几种技术,每 种技术各尽其职,以一种全新的方式聚合在一起服务器端语言:服务器需要具备向浏览器发送特定信息的 能力。Ajax与服务器端语言无关。XML (eXtensible Markup Language,可扩展标记语言) 是一种描述数据的格式。Aajx 程序需要某种格式化的格 式来在服务器和客户端之间传递信息,XML 是其中的一种 选择XHTML(eXtended H

4、ypertext Markup Language,使用扩展 超媒体标记语言)和 CSS(Cascading Style Sheet,级联 样式单)标准化呈现;DOM(Document Object Model,文档对象模型)实现动态 显示和交互;使用XMLHTTP组件XMLHttpRequest对象进行异步数据读取使用JavaScript绑定和处理所有数据Ajax的缺陷lAJAX不是完美的技术。使用AJAX,它的一些 缺陷不得不权衡一下: 由 Javascript 和 AJAX 引擎导致的浏览器的兼容 页面局部刷新,导致后退等功能失效。 对流媒体的支持没有FLASH、Java Applet好。

5、 一些手持设备(如手机、PDA等)支持性差。XMLHttpRequest的概述lXMLHttpRequest 最早是在IE5中以ActiveX组件的形 式实现的。非 W3C 标准.l创建XMLHttpRequest对象(由于非标准所以实现方 法不统一) Internet Explorer把XMLHttpRequest实现为一个ActiveX对象 其他浏览器(Firefox、Safari、Opera)把它实现为一个本 地的JavaScript对象。 XMLHttpRequest在不同浏览器上的实现是兼容的,所以可 以用同样的方式访问XMLHttpRequest实例的属性和方法,而 不论这个实例创

6、建的方法是什么。创建XMLHttpRequest对象l为了每次写Ajax的时候都节省一点时间,可以把对象 检测的内容打包成一个可复用的函数:说明:对window.XMLHttpRequest的调用会返回一个对象或null,if语句会 把调用返回的结果看作是true或false(如果返回对象则为true,返回null 则为false)。如果XMLHttpRequest对象存在,则把 xhr 的值设为该对象的 新实例。如果不存在,就去检测 ActiveObject 的实例是否存在,如果答案 是肯定的,则把微软 XMLHTTP 的新实例赋给 xhrXMLHttpRequest的方法XMLHttpRe

7、quest的属性发送请求l利用XMLHttpRequest 实例与服务器进行通信 包含以下3个关键部分: onreadystatechange 事件处理函数 open 方法 send 方法 发送请求lonreadystatechange: 该事件处理函数由服务器触发,而不是用户 在 Ajax 执行过程中,服务器会通知客户端当前的通 信状态。这依靠更新 XMLHttpRequest 对象的 readyState 来实现。改变 readyState 属性是服务器 对客户端连接操作的一种方式。每次 readyState 属 性的改变都会触发 readystatechange 事件发送请求lopen(

8、method, url, asynch)XMLHttpRequest 对象的 open 方法允许程序员用一个Ajax调用向 服务器发送请求。method:请求类型,类似 “GET”或”POST”的字符串。若只想从服 务器检索一个文件,而不需要发送任何数据,使用GET(可以在GET 请求里通过附加在URL上的查询字符串来发送数据,不过数据大小 限制为2000个字符)。若需要向服务器发送数据,用POST。在某些情况下,有些浏览器会把多个XMLHttpRequest请求的结果 缓存在同一个URL。如果对每个请求的响应不同,就会带来不好的 结果。在此将时间戳追加到URL的最后,就能确保URL的唯一性,

9、 从而避免浏览器缓存结果。url:路径字符串,指向你所请求的服务器上的那个文件。可以是绝 对路径或相对路径。asynch:表示请求是否要异步传输,默认值为true。指定true,在 读取后面的脚本之前,不需要等待服务器的相应。指定false,当脚 本处理过程经过这点时,会停下来,一直等到Ajax请求执行完毕再 继续执行。发送请求lsend(data):open 方法定义了 Ajax 请求的一些细节。send 方法可为 已经待命的请求发送指令data:将要传递给服务器的字符串。若选用的是 GET 请求,则不会发送任何数据, 给 send 方法传递 null 即可:request.send(nul

10、l);当向send()方法提供参数时,要确保open()中指定的方法 是POST,如果没有数据作为请求体的一部分发送,则使 用null.完整的 Ajax 的 GET 请求示例:发送请求lsetRequestHeader(header,value) 当浏览器向服务器请求页面时,它会伴随这个请求发送一组首部信 息。这些首部信息是一系列描述请求的元数据(metadata)。首部信息 用来声明一个请求是 GET 还是 POST。 Ajax 请求中,发送首部信息的工作可以由 setRequestHeader该完成 参数header: 首部的名字; 参数value:首部的值。 如果用 POST 请求向服务

11、器发送数据,需要将 “Content-type” 的 首部设置为 “application/x-www-form-urlencoded”.它会告知服务 器正在发送数据,并且数据已经符合URL编码了。 该方法必须在open()之后才能调用 完整的 Ajax 的 POST 请求示例:接收相应l用 XMLHttpRequest 的方法可向服务器发送 请求。在 Ajax 处理过程中,XMLHttpRequest 的如下属性可被服务器更改: readyState status responseText responseXML接收相应lreadyState readyState 属性表示Ajax请求的当前

12、状态。它的值用数字代表。0 代表未初始化。 还没有调用 open 方法1 代表正在加载。 open 方法已被调用,但 send 方法还没有被调用2 代表已加载完毕。send 已被调用。请求已经开始3 代表交互中。服务器正在发送响应4 代表完成。响应发送完毕每次 readyState 值的改变,都会触发 readystatechange 事件 。如果把 onreadystatechange 事件处理函数赋给一个函数,那么 每次 readyState 值的改变都会引发该函数的执行。readyState 值的变化会因浏览器的不同而有所差异。但是,当请 求结束的时候,每个浏览器都会把 readySta

13、te 的值统一设为 4接收相应lstatus服务器发送的每一个响应也都带有首部信息。三位数的 状态码是服务器发送的响应中最重要的首部信息,并且 属于超文本传输协议中的一部分。常用状态码及其含义:404 没找到页面(not found)403 禁止访问(forbidden)500 内部服务器出错(internal service error)200 一切正常(ok)304 没有被修改(not modified)在 XMLHttpRequest 对象中,服务器发送的状态码都 保存在 status 属性里。通过把这个值和 200 或 304 比 较,可以确保服务器是否已发送了一个成功的响应接收相应l

14、responseText XMLHttpRequest 的 responseText 属性包含了从服务 器发送的数据。它是一个HTML,XML或普通文本,这取 决于服务器发送的内容。 当 readyState 属性值变成 4 时, responseText 属性才 可用,表明 Ajax 请求已经结束。接收相应lresponseXML 如果服务器返回的是 XML, 那么数据将储存 在 responseXML 属性中。 只用服务器发送了带有正确首部信息的数据时 , responseXML 属性才是可用的。 MIME 类 型必须为 text/xml汇总数据格式提要l在服务器端 AJAX 是一门与语言

15、无关的技术。 在业务逻辑层使用何种服务器端语言都可以。l从服务器端接收数据的时候,那些数据必须以 浏览器能够理解的格式来发送。服务器端的编 程语言只能以如下 3 种格式返回数据: XML JSON HTML任务网页中的人员列表点击连接就会显示个人的信息XMLl优点: XML 是一种通用的数据格式。 不必把数据强加到已定义好的格式中,而是要为数据自定义 合适的标记。 利用 DOM 可以完全掌控文档。l缺点: 如果文档来自于服务器,就必须得保证文档含有正确的首部 信息。若文档类型不正确,那么 responseXML 的值将是空 的。 当浏览器接收到长的 XML 文件后, DOM 解析可能会很复杂J

16、SONlJSON(JavaScript Object Notation)一种简单的数据 格式,比xml更轻巧。JSON是JavaScript原生格式,这 意味着在JavaScript中处理JSON数据不需要任何特殊的 API或工具包。 lJSON的规则很简单:对象是一个无序的“名称/值对”集 合。一个对象以“”(左括号)开始,“”(右括号)结束 。每个“名称”后跟一个“:”(冒号);“名称/值对”之间使 用“,”(逗号)分隔。JSON 示例lJSON 用冒号(而不是等号)来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起 来。可用大括号分级嵌套数据。l对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是 对象的方法。解析 JSONlJSON 只是一种文本字符串。它被存储在 responseText 属性中l为了读取存储在 responseText 属性中的 JSON 数据,需要根

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号