亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何同時發起兩個ajax請求不互相影響?

如何同時發起兩個ajax請求不互相影響?

12345678_0001 2018-09-06 13:10:21
再頁面上寫了一個ajax函數fun(query),只需要傳入查詢字符串就可以發起請求,其它的url等等條件都是一樣的。那么問題來了,這時候頁面上有兩個地方需要發起ajax請求,拿到數據渲染頁面,于是調用這個函數發起請求:fun(query1);fun(query2);那么這時這兩個ajax可不可以可以分辨得出來那個返回的數據時自己所發起的請求返回的?因為ajax時異步請求嘛,哪個請求返回的數據也并不一定?如果真的有混亂對的可能,那么一般的解決方案有哪些?補充:我想實現的是頁面加載的時候有兩個地方自動從服務器獲取數據渲染頁面,所以這兩個請求頁面加載的時候就會自動觸發了,請求1和2的數據哪個先返回是不確定的,有可能請求1的數據先返回,也有可能請求2的數據先返回。我就怕請求1的回調函數獲取到了請求2的數據,請求2獲取了請求1的數據,因為我也沒看到程序做了什么事情來確定得到的數據就是自己所發起的請求所返回的
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

為什么要去分辨?按照常理,不同的請求會被綁定到不同的行為中,即使他們調用的是同一函數.比如有個按鈕A叫查詢姓名,有個按鈕B叫查詢年齡,你封裝了一個函數,只要傳參數就能對應去獲取數據.那么你在A綁定點擊事件的時候傳的回調函數和在B綁定點擊事件傳的回調肯定是不一樣的啊。


function fun(query){}


$('#queryName').on('click', fun({queryCondition: {xx: ['name']}, callback: function(){邏輯A}}))


$('#queryAge').on('click', fun({queryCondition: {xx: ['age']}, callback: function(){邏輯B}}))


或者你fun里面返回一個jqxhr對象也行,那么你就可以寫成

$('#queryName').on('click', fun({queryCondition: {xx: ['name']}}))

.done(function(){邏輯A});


$('#queryAge').on('click', fun({queryCondition: {xx: ['age']}}))

.done(function(){邏輯B}});


查看完整回答
反對 回復 2018-10-17
  • 1 回答
  • 0 關注
  • 1816 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號