2014-01-15 33 views
5

RequireJS腳本標記是否應位於<head>或HTML頁面的底部?在<head>或頁面底部的RequireJS腳本標記?

<script data-main="resources/js/main" src="require.js"></script> 

我已經看到有信譽的來源放置RequireJS腳本標籤在任何一個位置,但沒有信譽的來源似乎明確地說出,理想位置。

標記放在標頭中的參數可能是RequireJS在頁面繼續加載時(雖然此增益可能很小)可能已經開始異步加載並執行依賴腳本。

參數用於放置標籤在該頁面的底部將是將檢查DOM準備好將不被模塊中需要的(儘管不包括該檢查可能會引起問題,如果模塊在第三使用-party系統,加載<head>標籤中的腳本)。

+0

嗨!我正在嘗試使用RequireJs。我觀察到,無論您將requirejs腳本標記放在頭還是身體中,都始終將頭文件中的相關腳本加載。有什麼辦法可以強制Requirejs在底部加載所有依賴的JavaScript? – VishwaKumar

回答

2

一般的最佳做法是始終將腳本放在底部。

您可能已經看到人們將它包括在HEAD中,因爲它沒有太大區別。

我會在底部推薦,因爲在生產之前需要構建腳本,否則最終會將所有腳本加載到頭部。

請注意,如果您運行的是「單頁應用程序」,那麼它真的沒關係,因爲您的身體幾乎是空的 - 或者幾乎是空的。

1

把它放在頁面的底部,它更好的性能,如果你打算操縱頁面(如預期),那麼你希望它首先加載頁面。

最佳實踐,除了少數例外,始終是:

  • 載入樣式(CSS)
  • 負載結構(HTML)
  • 負載腳本(功能)
1

我在一個包含大量模板和大約1MB頁面負載的項目上工作,並且將requireJS放在頁面的頂部有它的特權。需求可以開始調度和解析js,而其餘的html下載。另外,我們已經注意到,這允許我們在頁面全部關閉之前在頁面中'需要'css。

今天我確實發現了一個警告,如果需要加載到頭部頁面/腳本標記之前,腳本標記可能會執行兩次。我試圖創建一個例子來調試。

+0

是的,能夠通過RequireJS儘快加載CSS是一個優點。 –