2013-02-12 35 views
9

根據諸如Yahoo Developer Network之類的許多消息來源,javascript會在頁面底部顯示,以便在加載javascript之前顯示網頁內容。將頭文件中的require.js放入head標籤是否會讓瀏覽器等待腳本在顯示頁面之前完成加載?爲什麼require.js進入head標籤

<head> 
<title>My Sample Project</title> 
<script data-main="scripts/main" src="scripts/require.js"></script> 
</head> 

回答

5

答案有點複雜;它可以在您的頁面的<head><body>中,取決於您要求的和require.js。在加載內容之前,某些操作在邏輯上需要發生,但大多數事情都樂於等待。

的一些東西,需要在頁面加載之前發生的一個例子是CSS預處理器像LESS,這顯然需要在<head>運行(在現實中,這或許應該被預編譯並擔任靜態的CSS,但它就是一個很好的例子) - 另一個例子是JavaScript模板系統或某種類型的客戶端MVC系統,如ember.js

對於基本的表示性JavaScript,通常可以安全地將它包含在頁面的底部。

+0

請注意,如果您在head元素中包含requirejs標記,它會自動爲您的主腳本注入具有異步屬性的另一個腳本標記。 – Bil 2015-08-12 02:21:05

1

答案是肯定的。這對head標籤中的所有腳本都是一樣的。腳本塊並行下載,瀏覽器在完成執行後繼續呈現頁面。

0

這取決於JavaScript文件的內容,它將在何時執行。

例如

<script> 
    function load() { 
    alert("load event!"); 
    } 
    window.onload = load; 
</script> 

消息框將在頁面加載後顯示。