2010-11-23 36 views
2

如果我把JavaScript中的head標籤如下:JavaScript會干擾其他內容的加載嗎?

<head> 
<script type="text/javascript" src="jQuery.js"></script> 
<script type="text/javascript"> 
// my jscript 
    </script> 

</head> 

它會干擾其他內容的加載,如圖片,文字等?我只是和我的朋友爭論,他表示這將擾亂網站設計的加載。

回答

2

是的,除非您使用asyncdefer那麼javascript將在html內容之前加載。您可以將腳本移動到所有圖像/文本的下方,並將其放在結束標記之前。

現在,瀏覽器速度如此之快,除非您的網站過於複雜,否則它不是一個大問題。更不用說,jQuery在每次迭代中越來越快,越來越緊湊。

另一方面是一些現代瀏覽器並行加載多個資源,所以在這些瀏覽器中可能沒有太大問題。我不知道這個錯綜複雜的細節,也許別人會提供一些見解...

+0

太好了!謝謝你的回覆。當你解釋時,我現在明白了更多。 – Sinzo 2010-11-23 19:26:21

0

是的,它會阻止頁面渲染,直到外部腳本完成加載並完成執行。

1

是的。

這就是爲什麼使用「就緒」回調(在jQuery內可用)的重要性。這是確保只有在頁面加載完成後才能執行代碼的正確方法,這在大多數情況下都是您想要的。

<head> 
<script type="text/javascript" src="jQuery.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
      // my jscript 
    } 
    </script> 

</head> 
0

如果您關心與問候的頁面加載速度更快:在頂部,JavaScript的底部

認沽CSS。 Steve Souders(高性能網站,O'Reilly) 發現,將樣式表移動到head元素的頂部可使頁面逐步加載 ,從而加快頁面加載速度。

對於腳本,情況正好相反。如果可能的話,將外部JavaScript 文件移動到頁面的底部,或者延遲或延遲加載JavaScript文件到 的頭部。

對於放置在HTML中的腳本 中的所有內容,漸進式呈現將被阻止。