天天看点

javascript异步请求的几种方式

第一种,基本方法。这种方法比较基础,而且可以根据readyState和status的不同状态,写不同的处理代码。算是比较完备的吧。

var xmlHttp;

if (window.ActiveXObject) {

   xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

} else {

   if (window.XMLHttpRequest) {

    xmlHttp = new XMLHttpRequest();

   }

}

//设定属性

xmlHttp.onreadystatechange = getPreRespons;

xmlHttp.open("POST", url, true);

//post方法必须设置这个请求头

xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    //发送请求 

xmlHttp.send(params);

//获得返回数据

function getPreRespons() {

//alert(xmlHttp.readyState);

if (xmlHttp.readyState == 4) {

//alert(xmlHttp.status)

   if (xmlHttp.status == 200) {

    parsePrem();//这个方法的代码略去,自己写就行

第二种,这种方法要先引入prototype.js。这种方法算是半封装,因为他封装了基本的一些代码,如设定属性等;但是将onComplte等 方法暴露了出来。更具体的方面,我另写有文章。

var myAjax = new Ajax.Request(

    url,

    {method:'post',parameters:params,onComplete: processResponse,asynchronous:true});

第三种,是jquery的方法,因此要先引入jquery.js。这种方法封装得比较厉害,只留了一个omCompleted方法出来。不过 jquery也留了底层方法,可以通过使用底层方法来获取更大的编程灵活性。不知道prototype有没有类似的方法。

jQuery.post(action, params, onCompleted, "text");

本文转自 斯然在天边 51CTO博客,原文链接:http://blog.51cto.com/winters1224/799027,如需转载请自行联系原作者

继续阅读