js 实现对ajax请求面向对象的封装
2014-05-13 15:37
211 查看
AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
在js中使用ajax请求一般包含三个步骤:
1、创建XMLHttp对象
2、发送请求:包括打开链接、发送请求
3、处理响应
在不使用任何的js框架的情况下,要想使用ajax,可能需要向下面一样进行代码的编写
如果在比较复杂的业务逻辑里面使用这种ajax请求,会使得代码很臃肿,不方便重用,并且可以看到,可能在服务器响应成功后要处理一个业务逻辑操作,这个时候不得不把操作写在onreadystatechage方法里面。
在js中使用ajax请求一般包含三个步骤:
1、创建XMLHttp对象
2、发送请求:包括打开链接、发送请求
3、处理响应
在不使用任何的js框架的情况下,要想使用ajax,可能需要向下面一样进行代码的编写
var xmlHttp = xmlHttpCreate();//创建对象 xmlHttp.onreadystatechange = function(){//响应处理 if(xmlHttp.readyState == 4){ console.info("response finish"); if(xmlHttp.status == 200){ console.info("reponse success"); console.info(xmlHttp.responseText); } } } xmlHttp.open("get","TestServlet",true);//打开链接 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、对请求进行面向对象的封装 处理之后看起来应该像下面这个样子: window.onload = function() { document.getElementById("hit").onclick = function() { console.info("开始请求"); ajax.post({ data : 'a=n', url : 'TestServlet', success : function(reponseText) { console.info("success : "+reponseText); }, error : function(reponseText) { console.info("error : "+reponseText); } }); } } 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操作,读者有不懂的地方可以慢慢思考或者在此留言
相关文章推荐
- js实现对ajax请求面向对象的封装
- js 实现对ajax请求面向对象的封装
- js实现对ajax请求面向对象的封装
- JS 和 ajax 实现网络请求 和 对应的类封装 回调函数实现
- 利用JS面向对象+模块化封装集AJAX请求、基本数据校验、URL参数截取等功能于一身的通用工具模块
- 利用JS面向对象+模块化封装集AJAX请求、基本数据校验、URL参数截取等功能于一身的通用工具模块
- 原生js封装ajax,实现跨域请求
- JS 和 ajax 实现网络请求 和 对应的类封装 回调函数实现
- JS-封装函数getValue(key),实现获取请求数据中的value值
- js封装ajax请求
- 原生JS封装AJAX请求
- jQuery实现,动态自动定位弹窗。JS分页,Ajax请求
- 实用前端JS工具类(验证,AJAX请求封装,分页插件等)真实项目使用
- js闭包的用途(匿名自执行函数,缓存,实现封装,实现面向对象)
- jQuery实现,动态自动定位弹窗。JS分页,Ajax请求
- JS笔记——ajax实现http请求步骤详解
- js与jQuery实现的兼容多浏览器Ajax请求实例
- 关于js 方法,实现ajax请求时,return false/true无效的问题
- 将ajax请求封装为一个对象(原生js)
- 实现session超时后自动跳转到登陆页面(前台JS,JAVA,判断是否Ajax请求)