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

首頁 > 編程 > JavaScript > 正文

原生js仿jquery實現對Ajax的封裝

2019-11-20 08:49:39
字體:
來源:轉載
供稿:網友

前言

與js相比,jquery為我們省去了冗長的獲取元素的代碼,不用考慮一些麻煩的兼容問題,更加方便的動畫實現,以及更加方便的方法調用讓我們覺得jquery真是越用越舒服。但是jquery說到底還是對js的封裝,我們不光要用的舒服還要深入理解其中的原理,這樣才能更好的使用它。

首先我們封裝的函數為了能實現可傳入無限多個參數,在使用我們即將封裝的函數時,需要使用對象進行傳參,形式如下:

//data作為參數傳入我們下面封裝的函數var data = {       //數據       user:"yonghu1",       pass:'12345',       age:18,       //回調函數       success:function (data){        alert(data);       }      }

函數封裝:

1、封裝一個輔助函數,把傳進來的對象拼接成url的字符串

function toData(obj){  if (obj == null){    return obj;  }  var arr = [];  for (var i in obj){    var str = i+"="+obj[i];    arr.push(str);  }  return arr.join("&");}

2、封裝Ajax

function ajax(obj){  //指定提交方式的默認值  obj.type = obj.type || "get";  //設置是否異步,默認為true(異步)  obj.async = obj.async || true;  //設置數據的默認值  obj.data = obj.data || null;  if (window.XMLHttpRequest){    //非ie    var ajax = new XMLHttpRequest();  }else{    //ie    var ajax = new ActiveXObject("Microsoft.XMLHTTP");  }  //區分get和post  if (obj.type == "post"){    ajax.open(obj.type,obj.url,obj.async);    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    var data = toData(obj.data);    ajax.send(data);  }else{    //get test.php?xx=xx&aa=xx    var url = obj.url+"?"+toData(obj.data);    ajax.open(obj.type,url,obj.async);    ajax.send();  }  ajax.onreadystatechange = function (){    if (ajax.readyState == 4){        if (ajax.status>=200&&ajax.status<300 || ajax.status==304){          if (obj.success){            obj.success(ajax.responseText);          }        }else{          if (obj.error){            obj.error(ajax.status);          }        }      }   }  }

總結

以上就是原生js仿jquery實現對Ajax封裝的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 敦煌市| 江山市| 高青县| 临颍县| 碌曲县| 土默特左旗| 周至县| 定远县| 新平| 大洼县| 印江| 乐山市| 女性| 德保县| 柞水县| 北京市| 新沂市| 壤塘县| 霍山县| 昌宁县| 稷山县| 崇礼县| 女性| 保靖县| 瑞金市| 克什克腾旗| 磐石市| 边坝县| 昌乐县| 宜兰县| 唐河县| 竹溪县| 巴中市| 望江县| 韶关市| 玉环县| 仪陇县| 武乡县| 万荣县| 百色市| 焉耆|