欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年01月22日 10:42:45   作者:邢澤川  
這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)對(duì)Ajax的封裝,模仿jquery,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

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

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

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

函數(shù)封裝:

1、封裝一個(gè)輔助函數(shù),把傳進(jìn)來(lái)的對(duì)象拼接成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){
  //指定提交方式的默認(rèn)值
  obj.type = obj.type || "get";
  //設(shè)置是否異步,默認(rèn)為true(異步)
  obj.async = obj.async || true;
  //設(shè)置數(shù)據(jù)的默認(rèn)值
  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);
          }
        }
      }
   }  
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文帶你掌握J(rèn)avaScript中的箭頭函數(shù)

    一文帶你掌握J(rèn)avaScript中的箭頭函數(shù)

    在JavaScript中,箭頭函數(shù)是一種簡(jiǎn)化的函數(shù)語(yǔ)法,它在ES6(ECMAScript?2015)引入,本文就來(lái)和大家深入講講JavaScript中的箭頭函數(shù)的使用吧
    2023-05-05
  • 深入理解選擇框腳本[推薦]

    深入理解選擇框腳本[推薦]

    選擇框是通過(guò)<select>和<option>元素創(chuàng)建的,又稱(chēng)為下拉列表框。為了方便與這個(gè)控件交互,除了所有表單字段共有的屬性和方法外,javascript還提供了一些屬性和方法。本文將詳細(xì)介紹選擇框腳本
    2016-12-12
  • 16個(gè)最流行的JavaScript框架[推薦]

    16個(gè)最流行的JavaScript框架[推薦]

    這篇文章列舉了當(dāng)下最流行的16個(gè) JavaScript 框架,既包含 jQuery 和 Mootools 等常規(guī)框架,也有Zepo這種支持智能手機(jī)觸摸功能的移動(dòng)JavaScript框架,如果你有更好的框架推薦,歡迎與我們分享。
    2011-05-05
  • js實(shí)現(xiàn)class樣式的修改、添加及刪除的方法

    js實(shí)現(xiàn)class樣式的修改、添加及刪除的方法

    這篇文章主要介紹了js實(shí)現(xiàn)class樣式的修改、添加及刪除的方法,主要通過(guò)修改標(biāo)簽的className來(lái)實(shí)現(xiàn)這一功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-01-01
  • 序列化模塊json代碼實(shí)例詳解

    序列化模塊json代碼實(shí)例詳解

    這篇文章主要介紹了序列化模塊json代碼實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • javascript自定義日期比較函數(shù)用法示例

    javascript自定義日期比較函數(shù)用法示例

    這篇文章主要介紹了javascript自定義日期比較函數(shù)用法,涉及javascript日期相關(guān)轉(zhuǎn)換、運(yùn)算操作技巧,需要的朋友可以參考下
    2019-07-07
  • javascript 具名函數(shù)的四種調(diào)用方式 推薦

    javascript 具名函數(shù)的四種調(diào)用方式 推薦

    看四種方式執(zhí)行結(jié)果沒(méi)有區(qū)別。但如果函數(shù)有返回值的話,用new方式調(diào)用時(shí)可能會(huì)讓你有些失望。
    2009-07-07
  • 跟我學(xué)習(xí)javascript的執(zhí)行上下文

    跟我學(xué)習(xí)javascript的執(zhí)行上下文

    跟我學(xué)習(xí)javascript的執(zhí)行上下文,讀完本文后,你應(yīng)該清楚了解釋器做了什么,為什么函數(shù)和變量能在聲明前使用以及它們的值是如何決定的,需要了解這些內(nèi)容的朋友可以參考下
    2015-11-11
  • JS實(shí)現(xiàn)的網(wǎng)頁(yè)背景閃電閃爍效果代碼

    JS實(shí)現(xiàn)的網(wǎng)頁(yè)背景閃電閃爍效果代碼

    這篇文章主要介紹了JS實(shí)現(xiàn)的網(wǎng)頁(yè)背景閃電閃爍效果代碼,涉及JavaScript定時(shí)函數(shù)結(jié)合頁(yè)面元素樣式操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • javascript刪除數(shù)組重復(fù)元素的方法匯總

    javascript刪除數(shù)組重復(fù)元素的方法匯總

    這篇文章主要介紹了javascript刪除數(shù)組重復(fù)元素的方法,實(shí)例匯總了幾種常用的javascript刪除數(shù)組重復(fù)元素的技巧,需要的朋友可以參考下
    2015-06-06

最新評(píng)論