js实现对ajax请求面向对象的封装

前端之家收集整理的这篇文章主要介绍了js实现对ajax请求面向对象的封装前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 在js中使用ajax请求一般包含三个步骤:

  • 1、创建XMLHttp对象
  • 2、发送请求:包括打开链接、发送请求
  • 3、处理响应

在不使用任何的js框架的情况下,要想使用ajax,可能需要向下面一样进行代码的编写

链接

xmlHttp.send(null);//发送请求

function xmlHttpCreate() {
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest;// ff opera
} catch (e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");// ie
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {

  } 
} 

}
return xmlHttp;
}

console.info(xmlHttpCreate());

如果在比较复杂的业务逻辑里面使用这种ajax请求,会使得代码很臃肿,不方便重用,并且可以看到,可能在服务器响应成功后要处理一个业务逻辑操作,这个时候不得不把操作写在onreadystatechage方法里面。 为了方便代码的重用我们可以做出如下处理;

  • 1、服务器响应成功后,要处理的业务逻辑交给开发人员自己处理
  • 2、对请求进行面向对象的封装

处理之后看起来应该像下面这个样子:

var ajax = {
xmlHttp : '',url:'',data:'',xmlHttpCreate : function() {
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest;// ff opera
} catch (e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");// ie
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {

    } 
  } 
} 
return xmlHttp; 

},post:function(jsonObj){
ajax.data = jsonObj.data;
ajax.url = jsonObj.url;
//创建XMLHttp对象,打开链接、请求、响应
ajax.xmlHttp = ajax.xmlHttpCreate();
ajax.xmlHttp.open("post",ajax.url,true);
ajax.xmlHttp.onreadystatechange = function(){
if(ajax.xmlHttp.readyState == 4){
if(ajax.xmlHttp.status == 200){
jsonObj.success(ajax.xmlHttp.responseText);
}else{
jsonObj.error(ajax.xmlHttp.responseText);
}
}
}
ajax.xmlHttp.send(ajax.data);
}
};

上述代码实现了类似jquery中的ajax操作,希望对大家的学习有所帮助。

原文链接:https://www.f2er.com/ajax/50648.html

猜你在找的Ajax相关文章