jquery異步請求攔截解決方法:

創(chuàng)新互聯(lián)建站從2013年創(chuàng)立,先為東興等服務(wù)建站,東興等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為東興企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
$.ajaxSetup({
async : false, //同步
global: true, //對全部異步請求有效
beforeSend: function (jqXHR, settings) { //異步請求前,執(zhí)行
console.log(settings);
});
jquery通用異步方法:$.ajax
文檔:
異步post請求方法:$.post
文檔:
異步get請求方法:$.get
文檔:
AJAX異步和同步區(qū)別
AJAX
1、AJAX(Asynchronous JavaScript And XML)
主要由javascript和xml兩種技術(shù)以一種新的方式組合成一門客戶端技術(shù).
AJAX:DHTML+XMLHttpRequest(可用于發(fā)送異步請求)
DWR:ajax框架
AJAX:Asychronized JavaScript +XML的縮寫
AJAX是一種客戶端技術(shù),可以和J2ee、.Net等服務(wù)器端技術(shù)進行交互。
AJAX并不是一門新的技術(shù),它是有很多已有的技術(shù)按一定的方式組合起來的:
1)HTML,CSS實現(xiàn)標準的顯示
2)DOM(Document Object Module)實現(xiàn)動態(tài)交互
3)XML,XSLT實現(xiàn)數(shù)據(jù)獲取
4)XMLHttpRequest發(fā)送異步請求,獲取異步數(shù)據(jù)
5)JavaScript將各種技術(shù)粘合起來
2、同步請求應(yīng)答通信模型詳解
傳統(tǒng)web應(yīng)用采用click--wait--refresh方式與用戶交互.采用同步請求/響應(yīng)的交互模式頁面驅(qū)動,
以頁面為中心,即使請求前后的兩個頁面非常類似,服務(wù)器也要重新發(fā)送.
browse--request--server--response
會打斷用戶的操作,因客戶端每次操作后都要等待服務(wù)器的響應(yīng).刷新頁面會丟失用戶信息,光標位置不
能對用戶的請求做出立即的響應(yīng).由于HTML的限制,很多特殊效果很難實現(xiàn).
富客戶端的應(yīng)用:
Applet,Macromedia Flash,Java WebStart,DHtml,DHtml with Hidden IFrame,AJAX
3、使用目的
解決了同 步請求應(yīng)答通信模型 ( request/response 通 信模型 ) 的一些缺點:
1) 頁面先前的內(nèi)容丟失
2) 用戶的下一步操作被中斷
3) 頁面信息進行局部更新時,整個頁面要全部刷新.
Ajax 同時 處理 多 個 異步請求 ,可能出現(xiàn)這樣的錯誤:只有最后一個 異步請求 有效,其他的都沒效果。所以當我們執(zhí)行完一次 異步請求 就應(yīng)該把這次創(chuàng)建出來的 XMLHttpRequest 對象刪除,然后再執(zhí)行下一次 異步請求 。刪除使用 delete 即可
在table中批量刪除操作中發(fā)送了多個刪除請求,如不刪除jquXHR對象后會只刪除選中的最后一行,刪除jquXHR對象后問題解決。
jQuery.ajax()中文文檔(比w3cschool詳細很多)
php用法
jquery jsonp異步請求,success和jsonpCallback的區(qū)別
$.ajax({
url:
type: ‘GET’,
dataType: ‘jsonp’,
success:getGoodsList
});
$.ajax({
url:
type: ‘GET’,
dataType: ‘jsonp’,
jsonpCallback:getGoodsList
});
success
Type: Function( Anything data, String textStatus, jqXHR jqXHR )
A function to be called if the request succeeds. The function gets passed three arguments: The data returned from the server, formatted according to the dataType parameter or the dataFilter callback function, if specified; a string describing the status; and the jqXHR (in jQuery 1.4.x, XMLHttpRequest) object. As of jQuery 1.5, the success setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event.
jsonpCallback
Type: String or Function()
Specify the callback function name for a JSONP request. This value will be used instead of the random name automatically generated by jQuery. It is preferable to let jQuery generate a unique name as it’ll make it easier to manage the requests and provide callbacks and error handling. You may want to specify the callback when you want to enable better browser caching of GET requests. As of jQuery 1.5, you can also use a function for this setting, in which case the value of jsonpCallback is set to the return value of that function.
循環(huán)調(diào)用ajax的時候,由于循環(huán)的結(jié)果參數(shù)都在變化,如果回調(diào)函數(shù)需要獲取調(diào)用ajax時作用域空間的值,則使用success,
如果使用jsonpCallback,獲取值可能會混亂。
當然不會執(zhí)行了,你想一下,第一個post已經(jīng)提交一次了,并且的出來數(shù)據(jù)返回到了前臺,此時函數(shù)就結(jié)束了,根本沒有任何方法去觸發(fā)你的第二個post,所以不行。
按照你的意思,你可以換一種思想去實現(xiàn)這個方法,拋棄這種思想。我給你個建議,你把這下面的這個post也寫在第一個里面,把數(shù)據(jù)傳到后臺,在后臺里執(zhí)行所有的業(yè)務(wù)邏輯,再把兩個返回值拼接在一起,一并傳到前臺,在前臺再將返回值分開,比如你的是dataSpare2和dataSpare4吧,在后臺你先將這兩個值拼接起來,中間可以用“#”鏈接,傳到前臺后你再用js的分割函數(shù),
split('#'),得到數(shù)組對象,這樣再根據(jù)你的要求將不同的值填寫到相應(yīng)的位置
本文名稱:jquery異步請求,jquery 同步請求
文章位置:http://chinadenli.net/article43/dsihses.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、定制網(wǎng)站、微信小程序、云服務(wù)器、python、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)