2014年Ajax2_使用Ajax发送异步请求.pptVIP

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
onreadystatechange方法 abort()   取消当前响应,关闭连接并且结束任何未决的网络活动。   这个方法把 XMLHttpRequest 对象重置为 readyState 为 0 的状态,并且取消所有未决的网络活动。例如,如果请求用了太长时间,而且响应不再必要的时候,可以调用这个方法。 * onreadystatechange方法 getAllResponseHeaders()   把 HTTP 响应头部作为未解析的字符串返回。   如果 readyState 小于 3,这个方法返回 null。否则,它返回服务器发送的所有 HTTP 响应的头部。头部作为单个的字符串返回,一行一个头部。每行用换行符 \r\n 隔开。 * onreadystatechange方法 getResponseHeader() 返回指定的 HTTP 响应头部的值。其参数是要返回的 HTTP 响应头部的名称。可以使用任何大小写来制定这个头部名字,和响应头部的比较是不区分大小写的。   该方法的返回值是指定的 HTTP 响应头部的值,如果没有接收到这个头部或者 readyState 小于 3 则为空字符串。如果接收到多个有指定名称的头部,这个头部的值被连接起来并返回,使用逗号和空格分隔开各个头部的值。 * onreadystatechange方法 send()   发送 HTTP 请求,使用传递给 open() 方法的参数,以及传递给该方法的可选请求体。 * onreadystatechange方法 setRequestHeader()   向一个打开但未发送的请求设置或添加一个 HTTP 请求。 * onreadystatechange方法 open()   初始化 HTTP 请求参数,例如 URL 和 HTTP 方法,但是并不发送请求。 * 设置回调函数 由于是异步请求,请求发出后JavaScript 方法不会等待服务器处理完成,因此代码将继续执行,就是说,将退出该方法而把控制返回给表单。用户可以继续输入信息,应用程序不会等待服务器。 当服务器完成请求之后,需要指定该如何处理响应。XMLHttpRequest对象的onreadystatechange属性允许指定一个回调函数反向调用Web页面中的代码。 当服务器完成请求之后,会查看XMLHttpRequest对象,特别是 onreadystatechange属性。然后调用该属性指定的任何方法。之所以称为回调是因为由服务器向网页发起调用,无论网页本身正在做什么。这就是称之为异步的原因:用户在一层上操作表单,而在另一层上服务器响应请求并触发onreadystatechange属性指定的回调方法。 * 设置回调函数(续) 需要特别注意的是该属性在代码中设置的位置 —— 它是在调用send()之前设置的。发送请求之前必须设置该属性,这样服务器在回答完成请求之后能够查看该属性! 注意,这里updatePage是个函数名称,不能写成updatePage() 函数调用的形式!这表示将updatePage()函数运行的返回结果赋值给onreadystatechange属性。体会JavaScript中函数也是对象的特征。 * 处理服务器响应 请求发送后,用户可以继续使用Web表单(同时服务器在处理请求)。而当服务器完成了请求处理,服务器查看onreadystatechange属性确定要调用的方法。除此以外,可以将应用程序看作其他应用程序一样,无论是否异步。换句话说,不一定要采取特殊的动作编写响应服务器的方法,只需要改变表单或其它的页面结构,让用户访问另一个 URL 或者做响应服务器需要的任何事情。 处理函数(仅弹出简单的警告): * 处理服务器响应(续) 运行以上代码,根据浏览器的不同,在表单停止弹出警告之前会看到两次、三次甚至四次警告。原因在于还没有考虑HTTP就绪状态,这是请求/响应循环中的一个重要部分 HTTP就绪状态(readyState)表示请求的状态或情形。它用于确定该请求是否已经开始、是否得到了响应或者请求/响应模型是否已经完成。它还可以帮助确定读取服务器提供的响应文本或数据是否安全。在Ajax应用程序中需要了解五种就绪状态: 0:请求没有发出(在调用 open() 之前) 1:请求已经建立但还没有发出(调用 send() 之前) 2:请求已经发出正在处理之中(这里通常可以从响应得到内容头部) 3:请求已经处理,响应中通常有部分数据可用,但是服务器还没有完成响应 4:响应已完成,可以访问服务器响应并使用它 * 处理服务器响应(续) 与大多数跨浏览器问题一样,这些就绪状态的使用也不尽一致。实际上很少出现就绪状态从0到1、2、3再到4,一些浏览器从不报告0或1而

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档