2012-08-31 67 views
1

這個問題是面向jQuery的,但不一定完全。可以同步(阻止)ajax調用阻止瀏覽器的UI嗎?

簡短的問題:

能同步Ajax調用塊被點擊了一個普通按鈕?我的測試顯示它不會發生,但也許另一個瀏覽器會產生問題。

長問題:

在另一個問題,我問過,how to block on ajax call (I want it to block),男生們說,瀏覽器會在某些情況下阻止。

居然連的jQuery docs說: Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.

我想:
1.瞭解如何/爲什麼這會發生。
2.評估發生的概率。

從我的理解,這可能是不正確的:
我想,「鎖定」會,如果我碰巧頁的UI,爲開發,未建/更新UI之前Ajax調用本身, 「阻止」JavaScript VM,從而延遲UI構建/更新。正確與否?

回答

3

是的。當同步請求未完成時,瀏覽器會等待它返回。發生這種情況的可能性是100%,但如果您的請求速度夠快,可能就不那麼明顯了。事情是,你不能指望快速返回的請求。

這就是ajax調用的要點。第一個a表示異步,意思是「不阻塞」。

由於ajax調用是異步的,您的代碼可以在請求返回的任何地方,這意味着當請求返回時您需要一種處理響應的方法。這就是爲什麼您使用回調來處理響應。

你爲什麼不嘗試呢?

+0

這不是我沒有嘗試它 - 我一直在使用它!只是想知道。這一個導致另一個問題..謝謝! – Poni