我已經多次使用過jQuery,但我只是意識到,雖然我沒有做任何事情來等待或檢查要加載的jQuery插件,但運行jQuery代碼並沒有遇到問題。我的典型代碼是:是否需要檢查jQuery庫是否已加載?
<html>
...
<script type="text/javascript" src="http://codeorigin.jquery.com/jquery-1.10.2.min.js"></script>
...
<body>
...
</body>
<script>
//jQuery code, eg:
$('#xxx').load('yyyy.html');
... // more code
</script>
</html>
然後最近,我經歷了從codeorigin.jquery.com有時失敗或採取20s左右加載文件。在使用Chrome瀏覽器時,我注意到Chrome瀏覽器不會呈現HTML頁面,也不會執行其中的JavaScript代碼,直到引用的外部腳本文件的加載活動完成(可能是成功或失敗)爲止。這很好。
我的問題:它是一個標準的瀏覽器規範,瀏覽器總是會等待加載頁面中引用的所有外部腳本才能在呈現和執行html頁面之前完成嗎?或者,瀏覽器是否只是按順序執行頁面,等待每一個完成後再移到下一行,而不是異步?或者沒有定義的順序,網絡設計人員有責任在使用它們之前確保所有外部腳本已準備就緒?
加載不是異步。如果您將腳本放在標題中,它們將在到達主體之前加載並執行。 – Cristy
同意,將您的腳本標記移動到正文的底部。除非添加async或defer屬性,否則在運行之後,腳本將被評估。 –