2012-02-18 51 views
0

我在幾個插件說明中看到,在正文標記結束之前粘貼javascript/jQuery源文件。我搜索了他們爲什麼這樣說,沒有任何意義。在正文標記結束前放置jQuery/javascript源頁面

如果我把腳本中的src文件放在任何地方,我從來都不會遇到任何問題。任何人都可以給我一個很好的答案嗎?

回答

7

如果javascript代碼沒有引用DOM或DOM中的任何對象,那麼它可以放在頁面的任何位置。

如果您在</body>標記之前的body標記中的HTML之後放置該標記,那麼在您的腳本加載之前,頁面將被解析並顯示,這將使您的頁面顯示得更快。因此,您看到的建議是最大化您的網頁的初始顯示效果。

如果javascript DOES引用了DOM或DOM中的任何對象,那麼它必須有特殊的代碼來等待DOM被加載,然後才能在jQuery中使用類似$(document).ready(fn)的東西,或者必須在DOM之後物理加載代碼所以它不會執行,直到DOM被加載。

而且,當然,代碼必須在任何直接依賴初始執行的代碼之後加載。所以,jQuery插件需要在jQuery庫本身之後加載。

這裏的準則一般設置:

  1. 將代碼儘可能晚地在頁面中最大化你的頁面的顯示性能。
  2. 將代碼放在其初始執行所依賴的任何其他庫之後。
  3. 僅當代碼需要在文檔加載之前執行或使用時,纔將代碼放入<head>部分。例如,如果您的代碼正在檢查URL和Cookie並決定是否執行客戶端重定向,則需要立即執行該代碼,以便您可以將該代碼放入<head>部分,以便它可以在DOM之前執行加載或顯示。作爲另一個例子,如果你有一些內聯javascript需要某些功能在頁面加載期間可用(例如,一些內聯javascript,並且調用一些實用功能),然後將這些實用功能放在<head>部分,以使它們可用作爲頁面加載。
  4. 如果沒有理由在頁面加載之前執行代碼,或者代碼需要訪問DOM本身,那麼將代碼放在</body>標記的前面以優化頁面顯示時間並將代碼放在DOM準備就緒的位置用於代碼運行時的操作。
  5. 儘可能將代碼放在外部JS文件中,以充分利用瀏覽緩存。