我目前正在研究一些項目,其中一些錯誤在我們的jQuery AJAX調用中彈出。在大多數情況下,我們有一些元素需要進行初始化,以便在點擊時(或其他事件觸發器)執行某些操作。我們已經決定解決其中的一些問題,以在html結尾使用內聯腳本,而不是依賴於$(document).ready
事件觸發器。在應用程序中是否有加載jQuery的競爭條件?
然而,這導致我們想知道如果jQuery庫本身(它正在通過谷歌加載)沒有足夠快地加載,會發生什麼。特別是IE瀏覽器,瀏覽器是否會智能地等待執行這些代碼行,直到加載jQuery庫?在這種情況下,競爭條件是否可能?到目前爲止,我們大多數的問題似乎都出現在IE(甚至8和9)或Firefox的少數情況下。
編輯: 從使用$(document).ready
事件觸發的改變建議在How can I ensure that a link's default action is always disabled?其中也涉及到這個問題的情況。它似乎與html底部的內聯腳本一起工作良好。目前還不清楚問題是否因爲jQuery沒有加載(或其他元素),或者如果事件從未正確觸發。
但是,如果jQuery由於某種原因被加載延遲會發生什麼? $(document).ready會失敗,因爲它依賴於被加載的jQuery對瀏覽器有意義嗎? – Kenneth 2012-02-09 20:37:21
它不會失敗,只要您的
某些瀏覽器在加載跨域腳本之前加載本地服務器上的所有javascript。因此,在從Google加載jQuery庫之前,可能首先加載腳本。我會建議使用
$(document).ready
觸發器。來源
2012-02-09 20:26:47