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

首頁 > 編程 > JavaScript > 正文

原生js實現(xiàn)對Ajax的封裝(仿jquery)

2019-11-19 17:49:11
字體:
供稿:網(wǎng)友

前言

眾所周知,jquery在我們?nèi)粘i_發(fā)中的使用頻率非常高,與js相比,我們省去了冗長的獲取元素的代碼,不用考慮一些麻煩的兼容問題,更加方便的動畫實現(xiàn),以及更加方便的方法調(diào)用讓我們覺得jquery真是越用越舒服。但是jquery說到底還是對js的封裝,我們不光要用的舒服還要深入理解其中的原理,這樣才能更好的使用它。

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

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

函數(shù)封裝:

1、封裝一個輔助函數(shù),把傳進來的對象拼接成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";  //設(shè)置是否異步,默認為true(異步)  obj.async = obj.async || true;  //設(shè)置數(shù)據(jù)的默認值  obj.data = obj.data || null;  if (window.XMLHttpRequest){    //非ie    var ajax = new XMLHttpRequest();  }else{    //ie    var ajax = new ActiveXObject("Microsoft.XMLHTTP");  }  //區(qū)分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);          }        }      }   }  }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 聊城市| 元谋县| 无为县| 沈丘县| 南平市| 将乐县| 项城市| 长子县| 二连浩特市| 正镶白旗| 巩义市| 西林县| 梁河县| 眉山市| 新巴尔虎右旗| 儋州市| 锡林浩特市| 哈密市| 乌什县| 晋中市| 皋兰县| 台州市| 三江| 祁东县| 巴彦淖尔市| 察哈| 大安市| 鹤山市| 华池县| 琼中| 深圳市| 新平| 内江市| 平乐县| 清新县| 阿拉尔市| 张家口市| 沂南县| 宾川县| 定安县| 辰溪县|