在使用單個腳本標記與嵌入代碼之間還是使用多個腳本標記以及遍佈HTML的相同代碼之間有什麼區別(性能,最佳實踐等)?多個腳本標記與單個腳本標記
例如:
<script>
foo();
</script>
...
<script>
bar();
</script>
與:
<script>
foo();
bar();
</script>
感謝
在使用單個腳本標記與嵌入代碼之間還是使用多個腳本標記以及遍佈HTML的相同代碼之間有什麼區別(性能,最佳實踐等)?多個腳本標記與單個腳本標記
例如:
<script>
foo();
</script>
...
<script>
bar();
</script>
與:
<script>
foo();
bar();
</script>
感謝
隨着直列腳本像你報什麼,有不太可能多差異;然而,每一次瀏覽器的HTML解析器遇到script
標籤,它:
"</script>"
document.write
因此增加該序列具有發生在理論上可以,增加你的頁面加載時間的次數。它也會影響解析器在令牌流中「向前看」的程度,這可能會使效率降低。
所有這些聽起來都非常引人注目,但您必須在您關心的各種瀏覽器中剖析真實頁面,以確定它是否具有真實世界的影響。
因此,總之,儘可能多地合併它們。如果你不能合理地結合一對夫妻,除非你看到現實世界的問題,否則不要太擔心。
以上是針對內聯腳本的內容。當然,如果你有幾個script
標籤引用了一堆外部JavaScript文件,那麼你也會遇到這樣的問題:每個文件都必須下載,而啓動HTTP請求是一件昂貴的事情(相對),所以最好在很大程度上,將這些組合成單個文件。
其他需要考慮的因素:
script
標籤遍佈你的HTML可能使其難以做到對劇本更多:
儘可能多的結合你的腳本儘可能在我看來是更好的。一些瀏覽器必須在執行腳本塊時暫停渲染。看看答案在:Javascript Performance: Multiple script blocks Vs single bigger block
一些人認爲,最好的做法是將所有腳本合併到一個腳本塊或單個腳本文件中,只加載真正需要的JavaScript並儘可能晚加載,以免減慢html的渲染速度。
除此之外,我確信使用單個腳本塊加載速度比使用多個腳本塊要快,因爲它們必須單獨進行評估。然而,這種差異可能無法識別。
到目前爲止,所有的JavaScript代碼都在一個標籤中,這並不一定是這種情況。
您可以在文檔中包含儘可能多的標籤。
這些標籤會在遇到時處理。
希望這會有所幫助。
好主意。另外,如果它恰好是確定代碼中的所有內容的問題,請務必返回並以註釋的形式寫入適當的文檔,以便您瞭解代碼正在執行的內容,尤其是當您在不使用它的幾個月後重新訪問代碼。 – OzzyTheGiant