微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax原理解析一

ajax是什么

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

创建XMLHttpRequest对象

function GetXmlHttpObject() {
  var xmlHttp=null;
  try {
    // Firefox,Opera 8.0+,Safari
    xmlHttp=new XMLHttpRequest();
   }
  catch (e) {
    // Internet Explorer
    try {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
  return xmlHttp;
}

var xmlHttp=GetXmlHttpObject();

onreadystatechange 事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务。
每当 readyState 改变时,就会触发 onreadystatechange 事件。
readyState 属性存有 XMLHttpRequest 的状态信息。
onreadystatechange: 存储函数(或函数名),每当 readyState 属性改变时,就会调用函数
readyState: 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪

status:

200: "OK"
404: 未找到页面

Async = true

当使用 async=true 时,请规定在响应处于 onreadystatechange 事件中的就绪状态时执行的函数

xmlHttp.onreadystatechange=function() {
  if (xmlHttp.readyState==4 && xmlHttp.status==200){
        var data = xmlHttp.responseText;
        document.getElementById("myDiv").innerHTML=data;
    }
}
xmlHttp.open("GET","test.json?data=test",true);
xmlHttp.send();

Async = false

xmlhttp.open("GET","test.json",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐