国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > AJAX > 正文

js實現(xiàn)對ajax請求面向?qū)ο蟮姆庋b

2024-09-01 08:33:40
字體:
供稿:網(wǎng)友
這篇文章主要介紹了js實現(xiàn)對ajax請求面向?qū)ο蟮姆庋b的相關(guān)資料,需要的朋友可以參考下
 

AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。通過在后臺與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實現(xiàn)異步更新。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進(jìn)行更新。
在js中使用ajax請求一般包含三個步驟:

  •               1、創(chuàng)建XMLHttp對象
  •               2、發(fā)送請求:包括打開鏈接、發(fā)送請求
  •               3、處理響應(yīng)

在不使用任何的js框架的情況下,要想使用ajax,可能需要向下面一樣進(jìn)行代碼的編寫

<span style="font-size:14px;">var xmlHttp = xmlHttpCreate();//創(chuàng)建對象 xmlHttp.onreadystatechange = function(){//響應(yīng)處理   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);//發(fā)送請求  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());</span> 

如果在比較復(fù)雜的業(yè)務(wù)邏輯里面使用這種ajax請求,會使得代碼很臃腫,不方便重用,并且可以看到,可能在服務(wù)器響應(yīng)成功后要處理一個業(yè)務(wù)邏輯操作,這個時候不得不把操作寫在onreadystatechage方法里面。
為了方便代碼的重用我們可以做出如下處理;  

  •       1、服務(wù)器響應(yīng)成功后,要處理的業(yè)務(wù)邏輯交給開發(fā)人員自己處理 
  •       2、對請求進(jìn)行面向?qū)ο蟮姆庋b  

處理之后看起來應(yīng)該像下面這個樣子:  

<pre code_snippet_id="342814" snippet_file_name="blog_20140513_2_2489549" name="code" class="javascript">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;     //創(chuàng)建XMLHttp對象,打開鏈接、請求、響應(yīng)     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);   } };

上述代碼實現(xiàn)了類似jquery中的ajax操作,希望對大家的學(xué)習(xí)有所幫助。



注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 娱乐| 乌鲁木齐县| 磐石市| 深泽县| 南郑县| 石首市| 滕州市| 互助| 山东省| 曲靖市| 会泽县| 甘洛县| 行唐县| 仁化县| 水城县| 沾化县| 邵武市| 马龙县| 牟定县| 城口县| 怀宁县| 富蕴县| 牟定县| 珲春市| 达尔| 鱼台县| 西城区| 社旗县| 岑巩县| 昌江| 峨边| 普兰县| 宁晋县| 个旧市| 九龙县| 西平县| 宁南县| 昔阳县| 恩施市| 英德市| 伊通|