美文网首页
PHP编程实战15.2.3 Ajax的同步和异步事件

PHP编程实战15.2.3 Ajax的同步和异步事件

作者: 海边拾贝 | 来源:发表于2015-11-09 17:14 被阅读0次
<!--PHP编程实战-->
<!--JSON & Ajax -->
<!--15-3-->
<!--在JavaScript中创建XMLHttpRequest对象-->
<script type="text/javascript">
    var xhr=new XMLHttpRequest();
</script>
  • 请求方法: {"GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS"}之一
  • URL: 请求的URL. 可以是PHP JavaScript HTML i纯文本或者其他的文件类型
  • 异步的(可选): 默认为true,表示非阻塞调用.
  • 用户名(可选): 请求的服务器需要验证身份时候的用户名.
  • 密码(可选): 请求的服务器需要验证身份时候的密码.

同步调用

没有监听,JavaScript代码会等到服务器响应之后再继续执行。在收听到响应后,响应的数据会自动填充XHR对象的属性,相关的属性简介如下:

  • responseText:作为响应主题被返回的文本。
  • reponseXML:如果响应的内容类型是“text/xml”或“application/xml”,这个属性中将保存包含着响应数据的XML DOM文档。
  • status:响应的HTTP状态的说明。
  • statusText:HTTP状态的说明。
应该像下面这样检查同步请求的状态码
xhr.open("get", "example.txt", false);
xhr.send(null);
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {    
  alert(xhr.statusText);
} else {    
  alert("Request was unsuccessful: " + xhr.status);
}

通过检测status来解决下一步的操作,不要依赖statusText,因为后者在跨浏览器使用时不太可靠。

异步调用 onreadystatechange回调函数监听

检测XHR对象的readyState属性
  • 0:为初始化。尚未调用open()方法。
  • 1:启动。已经调用open()方法,但尚未调用send()方法。
  • 2:发送。已经调用send()方法,但尚未接收到相应。
  • 3:接受。已经接受到部分相应的数据。
  • 4:完成。已经接受到全部相应数据,而且已经可以在客户端使用了。
必须在调用open()之前指定onreadystatechange事件处理程序才能确保跨浏览器兼容性。这里采用跨浏览器安全的DOM0级方法
var xhr = createXHR();
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) {
        if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
            alert(xhr.statusText);
        } else {
            alert("Request was unsuccessful: " + xhr.status);
        }
    }
};
xhr.open("get", "example.txt", true);
xhr.send(null);

参考: http://www.w3cmm.com/ajax/xmlhttprequest.html

相关文章

  • PHP编程实战15.2.3 Ajax的同步和异步事件

    请求方法: {"GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS"}...

  • 同步异步编程,微任务/宏任务

    同步异步编程 异步的有 : 定时器 事件绑定 Promise/async/await Ajax异步请求数...

  • 为什么要使用异步 PHP

    同步编程与异步编程的区别 在讨论异步 PHP 的优点之前,让我们快速回顾一下同步编程模型和异步编程模型之间的区别。...

  • ajax

    ajax async javascript and xml在ajax的异步不是我们理解的同步异步编程,而是泛指局部...

  • RxSwift学习

    编程思想 用同步的方式,编写处理异步事件的代码。是基于异步 Event(事件)序列的响应式编程。它可以简化异步编程...

  • 读书笔记#Java异步编程实战-上

    Java异步编程实战 chap1 认识异步编程 异步编程概念与作用在使用同步编程方式时,由于每个线程同时只能发起一...

  • AJAX-全集

    同步+异步 Ajax同步+异步 JavaScript之(AJAX) JQuery之(AJAX) JQuery-有f...

  • 线程,同步,异步

    JS是一种单线程编程 js的任务分类{ 同步任务:一些变量,函数。。。 异步任务:页面渲染,ajax请求,事件触发...

  • ajax异步

    ajax异步和同步的设置 属性字段:async,参数为boolean类型。false代表同步,true代表异步

  • 异步和回调

    JS异步编程原型 如果能直接拿到结果就是同步如果不能直接拿到结果就是异步 异步 以AJAX为例 request.s...

网友评论

      本文标题:PHP编程实战15.2.3 Ajax的同步和异步事件

      本文链接:https://www.haomeiwen.com/subject/ctqhhttx.html