JavaScript Ajax编程 应用篇(3)

3.改进部分:大家都看见了,刚才在提交表单时,我们序列化了表单。在XMLHttpRequest 2 级为此定义了FormData 类型,它会自动为我们序列化表单,不需要我们自己写了。
        我们只动部分代码       

// ...此处省略代码和上面一致 // POST请求 xhr.open("post", "dome.php", true); // 仅仅这里需要改动,代替之前serialize.js中的函数 xhr.send(new FormData(form));

八、其他部分(了解,因为兼容性还不够)
    1.超时设定      

xhr.open("get", "example.txt", true); xhr.timeout = 1000; //将超时设置为1 秒钟(仅适用于IE8+) xhr.ontimeout = function(){ alert("Request did not return in a second."); }; xhr.send(null);

2.overrideMimeType()方法,针对服务器返回的类型  

var xhr = createXHR(); xhr.open("get", "example.txt", true); xhr.overrideMimeType("text/xml"); // 之前的是text/plain xhr.send(null);

3.进度事件
        1.load事件,只要浏览器收到服务器的信息就触发     

var xhr = createXHR(); xhr.onload = function(){ if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){ alert(xhr.responseText); } else { alert("Request was unsuccessful: " + xhr.status); } }; xhr.open("get", "example.txt", true); xhr.send(null);

2.progress事件,浏览器接收新数据期间周期性地触发         

var xhr = createXHR(); xhr.onprogress = function(event){ var divStatus = document.getElementById("status"); // 计算从响应中已经接收到的数据的百分比 if (event.lengthComputable){ divStatus.innerHTML = "Received " + event.position + " of " + event.totalSize +" bytes"; } }; xhr.open("get", "altevents.php", true); xhr.send(null);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzsgdx.html