ajax多個請求執行順序


先說結論再說原因

結論:比如點擊事件觸發了兩個ajax請求或者更多的請求,是沒有執行順序的,各個請求的快慢完全取決於返回的快慢,或許你在瀏覽器調試窗口看見的是先發了一個請求,再發了一個,但是完全沒有等待其返回就已經執行下一步操作。

原因:

首先在這里要明白單線程、多線程和線程:

線程是程序中的一個執行流,每個線程都有自己的專有寄存器(棧指針、程序計數器等),但代碼區是共享的,
即不同的線程可以執行同樣的函數。

多線程與單線程的區別:
你早上上班,正要打卡的時候,手機響了。。你如果先接了電話,等接完了,在打卡,就是單線程。
如果你一手接電話,一手打卡。就是多線程。兩件事的結果是一樣的。。你接了電話且打了卡。

js是單線程操作,那么問題就來了,既然是單線程為啥ajax請求無順序,因為是並行的。

 

在這里需要了解並發和並行:

1、並行就是兩個任務同時運行,就是甲任務進行的同時,乙任務也在進行。

2、並發是指兩個任務都請求運行,而處理器只能按受一個任務,就把這兩個任務安排輪流進行,由於時間間隔較短,使人感覺兩個任務都在運行。

 

這兩個概念說深說淺都不合適,多看多理解,入幾次坑就很有體會了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM