中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

使用jQuery處理AJAX請求的基礎學習教程
來源:易賢網 閱讀:1131 次 日期:2016-07-01 14:40:25
溫馨提示:易賢網小編為您整理了“使用jQuery處理AJAX請求的基礎學習教程”,方便廣大網友查閱!

這篇文章主要介紹了使用jQuery處理AJAX請求的基礎學習教程,除此之外還引申了鏈式處理事件回調的寫法,由淺入深非常值得借鑒,需要的朋友可以參考下

$.ajax快捷方法

$.get(url,[data],[callback],[type])

$.post(url,[data],[callback],[type])

兩種方法請求方式不同,其他方式相同.

參數:url[請求地址],data[請求的數據內容(obj對象)],callback[回調函數(只能處理請求成功事件)],

type[請求返回數據的編碼格式(默認ContentType指定格式)]

$.get('/test?x=1');

$.get('/test',{z:2});

$.post('/test',{y:2});

$.get('/user',function(data,callbacktype,jqXHR){

  data//返回數據

  callbacktype//返回數據的狀態信息(字符串)

  jqXHR//jQuery封裝的XHR對象

});

$(selector).load(url,[data],[callback])

將頁面片段載入到selector的容器里面

$("#content").load('/user');

$.getJSON(url,[data],[callback])

如果是JSON數據回調會成功,否則失敗

$.getJSON('/test',{type:1},function(){

  console.log(argument)

});

$.getScript(url,[claaback])

動態加載腳本文件

$.gerScript('/js/test.js',function(){

  alert(test(1,2));

});

$.ajax詳細使用方法

$.ajax(url,[settings]);

$.ajax({

  url:'/test',

  success:function(){

    alert('ok');

  }

});

處理響應結果的回調函數:

success[成功],error[請求失敗],

statusCode[指明返回的狀態碼的回調函數],

complete[請求返回前的回調函數(處理返回不同狀態碼的請求)]

$.ajax('/test',{

  success:function(data){

    console.log(arguments);

  },

  error:function(jqXHR,textStatus,err){

    //jqXHR:jQuery增強的XHR

    //textStatus:請求完成狀態

    //err:底層通過throw拋出的異常對象,類型與值與錯誤類型有關

    console.log(arguments);

  },

  complete:function(jqXHR,textStatus){

    //jqXHR:jQuery增強的XHR

    //textStatus:請求完成狀態success | error

    console.log(arguments);

  },

  statusCode:function(){

    '403':function(jqXHR,textStatus,err){

      //jqXHR:jQuery增強的XHR

      //textStatus:請求完成狀態

      //err:底層通過throw拋出的異常對象,類型與值與錯誤類型有關

      console.log(arguments);

      console.log(400);

    },

    '400':function(){

      console.log(400);

    }

  }   

});

請求的數據:data,processData,contentType,traditional

$.ajax('/test',{

  //請求的數據內容

  data:{

    a:1,

    b:2

  },

  //請求的方式

  type:'POST',

  //是否對請求的數據進行轉碼(用于傳輸數據為html節點內容)

  processData:true,

  //當前的數據是否使用傳統方式進行url編碼

  traditional:true,

  //請求數據編碼格式

  contentType:'application/json'

});

響應數據:dataType,dataFilter

$.ajax('/test',{

  success:function(data){

    console.log(typeof data)

  },

  //定義的返回數據的類型

  dataType:'json | html | text | jsonp | script',

  //返回底層的原始數據進行預處理

  dataFilter:function(data,type){

    //data:原始數據

    //type:指定的數據類型

  }  

});

前置處理:beforeSend

$.ajax('/test',{

  beforeSend:function(jqXHR,settings){

    console.log(arguments);

    jqXHR.setRequestHeader('test','haha');

    jqXHR.testData = {a:1,b:2};

  },

  complete:function(jqXHR){

    console.log(jqXHR.testData)

  }

});

請求類型:GET(默認) | POST | PUT | DELETE

同步異步:async(默認true)

是否緩存:cache(默認true)

其他參數:

1.global[是否觸發全局事件]

2.ifModifed[僅在服務器數據改變時候加載數據]

3.username,password[http需要驗證時候]

4.timeout[設置請求超時時間,若請求超時觸發error]

5.context[回調中this指向的對象]

其他相關的API

$.ajaxSetup(option)

設置全局默認參數

//默認為get請求

$.ajax('/test');

//修改全局請求方式為post

$.ajaxSetup({

  type:'post',

  headers:{

    test:new Date().getTime

  },

  cache:false

});

//請求方式改變為post

$.ajax('/test');

$.ajaxPrefilter([dataTypes],handler(option,originalOptions,jqXHR))

請求發起前的預處理,提供了一種AOP(面向切面)編程模式,常見用途:

1.根據option設定執行特定處理邏輯

2.修改option值改變請求默認行為

3.通過return修改默認dataType

例:通過return修改默認dataType

$.ajaxPrefilter('text html json',function(options,originalOptions,jqXHR){

  //options請求參數,含默認值

  //originalOptions請求時傳入的參數,不含默認值

  //jqXHR:jQuery增強的XHR

  console.log(arguments);

  if(options.url == '/test'){

    return 'text';

  }

});

$.ajax('/test',{

  type:'post',

  dataType:'text',

  //自定義屬性

  test:'haha'

});

例:多次請求僅最后一次有效,避免多次請求導致的數據混亂

var requests = {};

$.ajaxPrefilter(function(options,originalOptions,jqXHR){

  if(requests[options.url]){

    requests[options.url].abort();

  }

  requests[options.url] = jqXHR;

});

$.ajax('/test/');

$.ajax('/test/');

例:統一修改請求路徑

$.ajaxPrefilter(function(options){

  if(options.url.substr(0,5) == '/usr'){

    options.url = options.url.replace('/usr/','/user/');

    options.header = {

      a:1

    }

  }

});

$.ajax('/usr/');

全局事件

jQuery-1.9以后,全局事件必須綁定在document上

$(document).ajaxSuccess(globalEventHander);

$(document).ajaxError(globalEventHander);

$(document).ajaxComplete(globalEventHander);

$(document).ajaxStart(globalEventHander);

$(document).ajaxStop(globalEventHander);

$(document).ajaxSend(globalEventHander);

function globalEventHander(event){

  console.log(arguments);

  console.log(event.type);

}

$.ajax('/test?err=y');//請求成功

$.ajax('/test?err=n');//請求失敗

//請求順序:

//ajaxStart >> ajaxSend >> ajaxSend >> ajaxSuccess >> ajaxComplete >> ajaxError >> ajaxComplete >> ajaxStop

序列化

1.param[序列化一個 key/value 對象]

2.serialize[通過序列化表單值,創建 URL 編碼文本字符串]

3.serializeArray[通過序列化表單值來創建對象數組(名稱和值)]

例:param()

var params = { a:1, b:2 };

var str = $.param(params);

console.log(str);

//a=1&b=2"

例:serialize()

<form>

  <div><input type="text" name="a" value="1"/></div>

  <div><input type="text" name="b" value="2"/></div>

  <div><input type="hidden" name="c" value="3"/></div>

</form>

<script type="text/javascript">

  $('form').submit(function() {

   console.log($(this).serialize());

   //a=1&b=2&c=3

   return false;

  });

</script>

例:serializeArray()

<form>

  First:<input type="text" name="First" value="1" /><br />

  Last :<input type="text" name="Last" value="2" /><br />

</form>

<script type="text/javascript">

  $('form').click(function(){

    x=$("form").serializeArray();

    console.log(x);

    //{[name:First,value:1],[name:Last,value:2]}

  });

</script>

ajax鏈式編程方法

在開發的過程,經常會遇到一些耗時間的操作,比如ajax讀取服務器數據(異步操作),遍歷一個很大的數組(同步操作)。不管是異步操作,還是同步操作,總之就是不能立即得到結果,JS是單線程語音,不能立即得到結果,便會一直等待(阻塞)。

一般的做法就是用回調函數(callback),即事先定義好一個函數,JS引擎不等待這些耗時的操作,而是繼續執行下面的代碼,等這些耗時操作結束后,回來執行事先定義好的那個函數。如下面的ajax代碼:

$.ajax({

  url: "test.html",

  success: function(){

    console.log("success");

  },

  error: function(){

    console.log("error");

  }

});

但這樣寫不夠強大靈活,也很啰嗦。為此,jQuery1.5版本引入Deferred功能,為處理事件回調提供了更加強大而靈活的編程模式。

$.ajax("test.html")

.done(

  function(){

    console.log("success");

  }

)

.fail(

  function(){

    console.log("error");

  }

);

不就是鏈式調用嘛,有何優點?

優點一:可以清晰指定多個回調函數

function fnA(){...}

function fnB(){...}

$.ajax("test.html").done(fnA).done(fnB);

試想一下,如果用以前的編程模式,只能這么寫:

function fnA(){...}

function fnB(){...}

$.ajax({

  url: "test.html",

  success: function(){

    fnA();

    fnB();

  }

});

優點二:為多個操作指定回調函數

$.when($.ajax("test1.html"), $.ajax("test2.html"))

.done(function(){console.log("success");})

.fail(function(){console.log("error");});

用傳統的編程模式,只能重復寫success,error等回調了。

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美日韩1区| 欧美91大片| 国产精品美女主播| 欧美视频在线观看视频极品| 国产精品magnet| 欧美日韩免费观看一区=区三区| 欧美日韩视频不卡| 国产一区日韩二区欧美三区| 在线观看日韩av先锋影音电影院| 在线观看视频一区二区欧美日韩| 欲色影视综合吧| 亚洲在线视频观看| 久久成人精品| 欧美日韩在线视频一区| 伊人久久亚洲美女图片| 亚洲欧美www| 久久精品视频在线免费观看| 欧美日韩免费一区二区三区视频| 国产网站欧美日韩免费精品在线观看| 亚洲精品一区中文| 久久嫩草精品久久久久| 国产精品欧美经典| 一本久久知道综合久久| 男同欧美伦乱| 激情一区二区三区| 久久国产主播精品| 国产欧美一区二区三区在线看蜜臀 | 午夜精品一区二区在线观看| 久久久精品国产免大香伊| 欧美久久久久免费| 亚洲欧洲一二三| 久久久水蜜桃| 韩国欧美一区| 久久久人成影片一区二区三区观看| 欧美视频一区二区三区四区| 国内揄拍国内精品久久| 久久精品国产久精国产爱| 国产精品麻豆欧美日韩ww| 中文一区二区| 欧美日韩亚洲视频一区| 亚洲欧洲精品一区二区三区 | 这里只有精品丝袜| 久久成人精品电影| 国产午夜精品一区二区三区视频| 妖精视频成人观看www| 欧美日韩性生活视频| 一区二区三区视频在线观看 | 欧美在线免费视频| 国产美女精品| 久久精品亚洲一区| 亚洲国产日韩一区| 欧美精品99| 亚洲在线日韩| 激情一区二区| 欧美日韩国产123区| 亚洲一区二区三区777| 国产精品中文在线| 久久尤物视频| 夜夜嗨av一区二区三区| 国产老肥熟一区二区三区| 久久精品女人的天堂av| 91久久视频| 国产精自产拍久久久久久| 久久美女性网| 99天天综合性| 国产欧美一区二区三区在线看蜜臀| 久久久免费观看视频| 亚洲二区在线视频| 欧美日韩在线播放一区| 亚洲一区二区三区乱码aⅴ| 国产欧美一区二区精品性色| 久久综合久久美利坚合众国| 国产精品99久久久久久人| 国产精品日韩专区| 乱码第一页成人| 99热免费精品在线观看| 国产亚洲欧美另类中文| 欧美日韩国产电影| 久久久久久久久久久久久9999| 亚洲黄色小视频| 国产日韩欧美一区二区| 欧美不卡高清| 久久精品综合网| 一区二区免费在线视频| 曰韩精品一区二区| 欧美三级在线播放| 欧美大片91| 午夜欧美大片免费观看| 亚洲视频久久| 夜夜爽99久久国产综合精品女不卡| 加勒比av一区二区| 国产精品任我爽爆在线播放| 欧美日韩精品在线视频| 欧美大片免费观看| 老司机一区二区三区| 久久精品亚洲一区二区| 亚洲综合国产激情另类一区| 亚洲精品一二三| 亚洲福利小视频| 伊大人香蕉综合8在线视| 国产一区二区日韩精品| 国产日韩精品在线| 国产欧美日韩综合精品二区| 国产精品久久国产精麻豆99网站| 欧美日韩在线一区| 国产精品久久久久影院色老大 | 国产一区二区按摩在线观看| 欧美性淫爽ww久久久久无| 欧美激情1区2区3区| 欧美.www| 欧美激情国产精品| 欧美激情性爽国产精品17p| 欧美电影专区| 欧美日韩一区免费| 欧美性开放视频| 国产精品婷婷| 韩国精品在线观看| 伊人久久婷婷| 亚洲精品老司机| 亚洲综合欧美日韩| 欧美一区影院| 麻豆乱码国产一区二区三区| 免费久久99精品国产自| 欧美人与性动交a欧美精品| 国产精品大片wwwwww| 国产精品爽黄69| 曰本成人黄色| 亚洲视频国产视频| 久久精品国产亚洲aⅴ| 久久综合一区二区三区| 欧美大片一区二区| 国产精品久久久一区麻豆最新章节| 国产精品亚洲美女av网站| 精品69视频一区二区三区| 亚洲美女性视频| 亚洲欧美在线一区| 美女任你摸久久| 国产精品高潮呻吟久久av黑人 | 性欧美大战久久久久久久免费观看| 欧美一区激情| 欧美激情一区二区三区蜜桃视频 | 午夜精品网站| 久久人人97超碰精品888| 欧美精品粉嫩高潮一区二区| 国产精品麻豆欧美日韩ww| 国产色产综合产在线视频| 国语自产精品视频在线看抢先版结局| 亚洲经典三级| 久久久精彩视频| 欧美精品入口| 尤物网精品视频| 香蕉视频成人在线观看| 久久精品首页| 欧美色大人视频| 国产一区二区看久久| 91久久精品国产| 欧美一区高清| 国产精品久久久久久久久动漫| 韩日欧美一区二区| 99精品国产高清一区二区| 性久久久久久久久| 欧美日韩天天操| 亚洲国产精品欧美一二99| 亚洲欧美在线高清| 欧美激情五月| 国产亚洲精品久久久久动| 夜夜嗨av色综合久久久综合网| 欧美成人国产一区二区| 狠狠狠色丁香婷婷综合久久五月| 亚洲剧情一区二区| 欧美不卡在线视频| 揄拍成人国产精品视频| 欧美主播一区二区三区美女 久久精品人| 蜜臀av国产精品久久久久| 国产精品夜夜夜| 亚洲视频网在线直播| 欧美日韩美女在线| 亚洲精品日本| 免费亚洲婷婷| 在线精品一区| 暖暖成人免费视频| 在线观看欧美黄色| 狂野欧美激情性xxxx欧美| 国产精品亚洲不卡a| 一区二区三区精品视频| 久久精品视频网| 国产一二精品视频| 亚洲欧美日韩国产中文| 欧美日韩一区在线| 亚洲免费小视频| 欧美日韩一区二区三区| 日韩视频二区| 欧美揉bbbbb揉bbbbb| 一区二区三区欧美| 欧美日韩一区二区三区免费看| 99精品国产福利在线观看免费| 欧美国产一区在线| 亚洲一区精品电影| 国产农村妇女毛片精品久久麻豆 | 激情综合电影网|