课件下载_百万课件网

php教程_Ajax入门

声明:本课件在电脑上可正常浏览,在手机或平板电脑上只能浏览到简介。

php教程_Ajax入门的内容简介:

Ajax 入门练习 如何使用正则 正则表达式的结构与算术表达式的结构类似。即,各种元字符和运算符可以将小的表达式组合起来,创建大的表达式。 通过在一对分隔符之间放置表达式模式的各种组件,就可以构建正则表达式。对于 JScript,分隔符是正斜杠 (/) 字符。例如: /expression/ 在上面的示例中,正则表达式模式 (expression) 存储在 RegExp 对象的 Pattern 属性中。 正则表达式的组件可以是单个字符、字符集、字符的范围、在几个字符之间选择或者所有这些组件的任何组合。 基本原理 基本上,XMLHttpRequest非同步发送并不难,只要几个简单的范例就可以了解如何发送請求与处理回应。 AsynchronousJavaScript + XML XMLHttpRequest Hello!Ajax! 发送请求参数 XML传送与接收 JSON传送与接收 Ajax这个名词是由 Jesse James Garrett 提出,在他发表的  Ajax: A New Approach to Web Applications 这篇文章中谈到 Google Suggest 与 Google Maps 所使用到的技术,是他们在 Adaptive Path 中称之为Ajax的新方法: GoogleSuggest and Google Maps are two examples of a new approach to webapplications that we at Adaptive Path have been calling Ajax. The name is shorthand for Asynchronous JavaScript + XML, and it represents a fundamental shift in what’s possible on the Web. 在本课中指出,Ajax是Asynchronous JavaScript + XML的简称,这指出了Ajax的核心观念(Asynchronous)与所使用到的主要两个技术(JavaScript、XML)。Asynchronous为异步,要了解Ajax,必须先了解为何要异步。现在许多的应用程序都是在Web上展现,这托了因特网的普及之福,然而网络当初是Web应用程序繁荣的舞台,现在却也成了限制Web应用程序发展的因素。 限制的原因来自于网络延迟的不可确定性,网络联机其实是个很耗资源的行为,程序必须序列化、通讯协议沟通、实体路由传送等动作,这些动作都很耗时间与资源,所有透过网络必需的额外操作,常足以拖慢一个系统,就Web应用程序而言,通常只能透过窗体进行数据提交,在同步的情况下,使用者送出窗体之后,就只能等待远程服务器响应,在这段时间内,使用者无法作进一步的操作。 上图中阴影部份为送出窗体之后,使用者必须等待的时间,浏览器预设是使用同步的方式送出请求并等待响应,这也可以想象成存取一个很慢的硬盘,如果这是桌面应用程序,您就可以想象这种等待有多枯燥,人们之所以可以忍受Web应用程序的这种等待,某些原因是因为无从选择而习惯了。如果可以把请求与响应改为异步进行,也就是发出请求后,浏览器无需苦等服务器的响应,而可以让使用者对浏览器中的Web应用程序进行其它的操作,当服务器终于处理完请求并送出响应,而计算机接收到响应时,再回过头来呼叫浏览器所设定的对应动作进行处理。 现在的问题是,谁来发送异步请求,事实上有几种解决方案,在Ajax这个名词被提出之前,早就有着用IFrame的方式,也就是在HTML页面中内嵌另一个HTML页面,由内嵌的页面来发出请求,而外围的HTML页面还是可以继续让使用者进行操作,有时候IFrame的解决方式会是简单的,甚至比较好的。不过现在谈到Ajax,都着重在 XMLHttpRequest对象,您可以使用JavaScript来建立,其实Firefox、NetScape、Safari、Opera中才叫XMLHttpRequest,InternetExplorer中是Microsoft.XMLHTTP或Msxml2.XMLHTTP的ActiveX物件,不过IE7中也正名为XMLHttpRequest。 Ajax应用程序是必须由客户端、服务器端一同合作的应用程序,JavaScript是用来撰写Ajax应用程序客户端的语言,XML则是请求时或响应时,建议使用的交换数据格式,Ajax的客户端与服务器端基本上是可以独立开发的,只要协议好沟通的数据格式,服务器端不限于使用何种技术。 XMLHttpRequest 在Ajax应用程序中,如果是Mozilla/Firefox/Safari中,可以通过XMLHttpRequest来发出异步请求,如果是在IE6或IE先前版本,则是使用ActiveXObject来发出异步请求,为了各个不同浏览器间的兼容性,必须进行测试可取得XMLHttpRequest或ActiveXObject,例如: var xmlHttp;function createXMLHttpRequest() { if (window.XMLHttpRequest) { // 如果可以取得XMLHttpRequest   xmlHttp = new XMLHttpRequest();  // Mozilla、Firefox、Safari     }    else if (window.ActiveXObject) { // 如果可以取得ActiveXObject xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer    }} 这段程序代码可以满足大部份的浏览器,您可以再进一步检查是否真正生成了对象,例如: if(xmlHttp) {    // do request}else {    alert("您的浏览器不支持这个Ajax程序的功能");} 在建立XMLHttpRequest之后,则可以使用以下的几种方法: void open(string method, string url, boolean asynch, string username, string password) 开启对服务器端的连结;method为请求方式(GET、POST);url为服务器端地址,如果是GET的话,可加上请求参数与值;asynch为异步设定,预设是true,表示使用异步方式。 void send(content) 对服务器端传送请求,content这以放XML、输入串流、字符串、JSON格式的内容,放进去会放在POST本体中发送。 void setRequestHeader(string header, string value) 为HTTP请求设定一个给定的 header 设定值。 void abort() 用来中断请求。 string getAllResponseHeaders() 传回一个字符串,其中包含HTTP请求的所有响应标头。 string getResponseHeader(string header) 传回一个字符串,其中包含指定的响应标头值。 XMLHttpRequest包括以下几个标准属性: onreadystatechange 参考至callback函数,readyState每次改变时,都会呼叫onreadystatechange所参考的函数。 readyState 会有0到4的数值,分别表示不同的请求状态:0 = 未初始化的联机(uninitialized),还没呼叫open()1 = 载入中(loading),呼叫open(),还没呼叫send()2 = 已载入(loaded),呼叫send(),请求header/status准备好3 = 互动中(interactive),正在与服务器互动中4 = 请求完成(completed),完成请求 responseText 服务器传来的请求响应文字,会设定给这个属性。 responseXML 服务器传来的请求响应如果是XML,会成为DOM设定给这个属性。 status 服务器响应的状态码,例如200是OK,404为Not Found… statusText 服务器响应的状态文字。 一个基本的Ajax请求可以是以下的片段: function startRequest() {    createXMLHttpRequest(); // 建立异步请求对象    xmlHttp.onreadystatechange = handleStateChange;  // 设定callback函数    xmlHttp.open("GET", "simpleResponse.txt");  // 开启连结    xmlHttp.send(null);  // 传送请求}function handleStateChange() { // 在这边处理异步响应    …} 当每次readyState改变时,都会呼叫以上程序片段中设定的handleStateChange()函数,通常会在请求完成进行处理,所以您可以如以下的程序片段来处理响应:function handleStateChange() {   if (xmlHttp.readyState == 4) { // 测试状态是否请求完成     if (xmlHttp.status == 200) { // 如果服务器端响应OK          alert("服务器回应" + xmlHttp.responseText);  // 这边只取得响应文字     }   }}
课件下载:下载地址 页数:150页 [ 收藏 推荐 ]
课件大小:0.09 MB 上传时间:2012-10-18 09:53:37 下载次数: 所需金币:0个