如何解決多個(gè)ajax頁(yè)面請(qǐng)求,頁(yè)面loading阻塞問題
來源:懂視網(wǎng)
責(zé)編:小采
時(shí)間:2020-11-27 20:11:57
如何解決多個(gè)ajax頁(yè)面請(qǐng)求,頁(yè)面loading阻塞問題
如何解決多個(gè)ajax頁(yè)面請(qǐng)求,頁(yè)面loading阻塞問題:在項(xiàng)目中碰到多個(gè)ajax加載,loading加載出現(xiàn)問題,沒有能第一時(shí)間加載出來。主要原因是因?yàn)椋簽g覽器的渲染(UI)線程和js線程是互斥的,在執(zhí)行js耗時(shí)操作時(shí),頁(yè)面渲染會(huì)被阻塞掉。當(dāng)我們執(zhí)行異步ajax的時(shí)候沒有問題,但當(dāng)設(shè)置為同步請(qǐng)求時(shí),其他的動(dòng)作(aja
導(dǎo)讀如何解決多個(gè)ajax頁(yè)面請(qǐng)求,頁(yè)面loading阻塞問題:在項(xiàng)目中碰到多個(gè)ajax加載,loading加載出現(xiàn)問題,沒有能第一時(shí)間加載出來。主要原因是因?yàn)椋簽g覽器的渲染(UI)線程和js線程是互斥的,在執(zhí)行js耗時(shí)操作時(shí),頁(yè)面渲染會(huì)被阻塞掉。當(dāng)我們執(zhí)行異步ajax的時(shí)候沒有問題,但當(dāng)設(shè)置為同步請(qǐng)求時(shí),其他的動(dòng)作(aja
在項(xiàng)目中碰到多個(gè)ajax加載,loading加載出現(xiàn)問題,沒有能第一時(shí)間加載出來。
主要原因是因?yàn)椋簽g覽器的渲染(UI)線程和js線程是互斥的,在執(zhí)行js耗時(shí)操作時(shí),頁(yè)面渲染會(huì)被阻塞掉。當(dāng)我們執(zhí)行異步ajax的時(shí)候沒有問題,但當(dāng)設(shè)置為同步請(qǐng)求時(shí),其他的動(dòng)作(ajax函數(shù)后面的代碼,還有渲染線程)都會(huì)停止下來。即使我的DOM操作語(yǔ)句是在發(fā)起請(qǐng)求的前一句,這個(gè)同步請(qǐng)求也會(huì)“迅速”將UI線程阻塞,不給它執(zhí)行的時(shí)間。這就是代碼失效的原因。
1.是把同步改寫成異步,并且把多個(gè)ajax請(qǐng)求嵌套在一起。,在成功之后再去調(diào)用另外一個(gè)ajax請(qǐng)求,這樣子就不會(huì)因?yàn)榈谝粋€(gè)請(qǐng)求先結(jié)束,把第二個(gè)請(qǐng)求loading給屏蔽掉。
2.是使用jquery的Deferred對(duì)象,jQuery在1.5版本之后,引入了Deferred對(duì)象,提供的很方便的廣義異步機(jī)制。
3.用定時(shí)器setTimeout() 或者setinterval()函數(shù)去定時(shí)查看是否ajax都返回成功。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
如何解決多個(gè)ajax頁(yè)面請(qǐng)求,頁(yè)面loading阻塞問題
如何解決多個(gè)ajax頁(yè)面請(qǐng)求,頁(yè)面loading阻塞問題:在項(xiàng)目中碰到多個(gè)ajax加載,loading加載出現(xiàn)問題,沒有能第一時(shí)間加載出來。主要原因是因?yàn)椋簽g覽器的渲染(UI)線程和js線程是互斥的,在執(zhí)行js耗時(shí)操作時(shí),頁(yè)面渲染會(huì)被阻塞掉。當(dāng)我們執(zhí)行異步ajax的時(shí)候沒有問題,但當(dāng)設(shè)置為同步請(qǐng)求時(shí),其他的動(dòng)作(aja