ajax的核心是 XMLHttpRequest
html引用外部的时候这些要放在最后 好处如下:
1.加快网页加载速度
2.document.getElementById也可以用 不然 放head中则无法使用DOM方法
function loadXMLDoc(){
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
xmlhttp.onreadystatechange=function{
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open(“GET”,”/try/ajax/ajax_info.txt”,true);
xmlhttp.send();
}
onreadystatechange是一个事件处理函数 他会在服务器给XMLHttpRequest对象送回响应的时候被触发
执行
可以 request.onreadystatechange=function(){
…
}
也可以request.onreadystatechange=doSomething;
不能加() 加了就是立即调用函数的意思 这里我们是把函数的引用赋值给onreadystatechange属性
responseText属性 是用于保存字符串形式的数据 另一个是responseXML属性 用于保存Content-Type头部中
指定为”text/xml“的数据 可以用DOM方法处理这个对象 这也是XMLHttpRequest中有XML的原因
注意:有些浏览器会限制Ajax请求使用的协议 比如Chrome中 如果用file://协议从自己的硬盘里加载文件
就会报错 翻译过来就是 跨域请求只支持HTTP协议的 错误消息
注意: 脚本在发送XMLHttpRequest请求之后 仍会继续执行 不会等待响应返回
但是ajax是无法做到平稳退化的 就需要 Hijax技术 还在学习ing