有的時(shí)候同一個(gè)頁面被可能同時(shí)產(chǎn)生多個(gè)ajax請求,為了用戶體驗(yàn),最好是發(fā)送并行請求,這就產(chǎn)生了并發(fā)問題,應(yīng)該如何處理?
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比金昌網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式金昌網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋金昌地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。這種方法是最簡單的了,就是在一個(gè)請求執(zhí)行完后在執(zhí)行另一個(gè)請求。代碼如下:
functionasync1() { //do sth... async2(); } functionasync2() { //do sth... } async1();
var url1,url2; $.ajax({ url: url1, async: false }); $.ajax({ url: url2, async: false });
很顯然,這種方法會(huì)需要比較長的等待時(shí)間,用戶體驗(yàn)不是很好。
就是使用一個(gè)標(biāo)志位標(biāo)記請求是否已經(jīng)完成
這種方法會(huì)影響性能,盡量少用:
var cnt =0; functionasync1() { //do sth... cnt++; } function async2() { //do sth... cnt++; } async1(); async2(); var interval = setInterval(function(){ if (2 === cnt) { console.log('已執(zhí)行完成'); clearInterval(interval) } }, 0);
var cnt = 0; function async1() { //do sth... callback(); } function async2() { //do sth... callback(); } function callback() { cnt++; if (2 == cnt) console.log('都已執(zhí)行完畢'); } async1(); async2();
若使用第三方框架實(shí)現(xiàn),則要看第三方的相關(guān)文檔:
var d1 =$.Deferred(); var d2 =$.Deferred(); functionasync1() { d1.resolve("Fish"); } functionasync2() { d2.resolve("Pizza"); } async1(); async2(); $.when(d1,d2).done(function(v1, v2) { console.log(v1 + v2 + '已完成'); });
//下面是關(guān)于同時(shí)發(fā)起多個(gè)請求時(shí)的處理 axios.all([get1(),get2()]) .then(axios.spread(function(res1,res2) { // 只有兩個(gè)請求都完成才會(huì)成功,否則會(huì)被catch捕獲 }));
還有很多框架都可以,比如Angular的$wacth等等
使用ES6中的promise、asyn、await等應(yīng)該都可以實(shí)現(xiàn),由于本人尚未使用過,暫時(shí)不講,到時(shí)候再補(bǔ)充。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。
名稱欄目:請求多并發(fā)-創(chuàng)新互聯(lián)
文章源于:http://jinyejixie.com/article48/coehhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站營銷、企業(yè)網(wǎng)站制作、網(wǎng)站收錄、域名注冊、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容