2011-03-02 99 views
0

我的許多網頁上的的jQuery AMLL位。將它們放入一個外部文件與一個$(document).ready(function() {把jQuery和JavaScript插入外部文件

即時通訊思想,一切都在那裏。

這是一個好/壞主意?

將每個頁面是整體速度較慢,如果有更多的代碼,即使它不是頁面相關的執行?我想當dom準備就緒時,外部腳本中的每行代碼都會被執行..?或者我的理解錯誤?

+0

jQuery是JavaScript的,順便說一下; jQuery不是一種語言。 – 2011-03-02 10:29:15

回答

3

如果還有更多的代碼要執行,即使它沒有重新連接到頁面,每個頁面的整體速度是否會更慢?

外部腳本文件可能有一些加載的開銷,但是如果您在任意數量的頁面上使用多個腳本,外部是一個好主意;它會被緩存並且是即時的。

我想象當dom準備就緒時,外部腳本中的每行代碼都會被執行..?或者我的理解錯誤?

是的。如果您將代碼封裝在函數中作爲參數$(document).ready(),它將在DOMContentLoaded上執行。

1

如果你把JS的所有位到一個網頁 - 沒有打電話給他們的職能 - 那麼,是的,他們將得到執行每次您囊括其中。將常用函數放入外部腳本並保留在那裏會更好。這將增加您的代碼重用,並加快頁面加載,因爲您的JS將被緩存。

+0

so sould我保留頁面特定的代碼在頁面中?整體上比使用緩存的外部腳本更快? – raklos 2011-03-02 10:50:05

+1

如果你可以重構你的代碼,那就很好。儘管如此,不要只製作很多小文件。如果只有幾行,請將其保留在頁面上。你不會從它移動到一個單獨的文件很大益處,因爲瀏覽器必須發送一個額外的請求,搶文件 – JohnP 2011-03-02 11:22:45

+0

你能解釋一下你的重構意味着什麼,或者在一個體面的書/嘖嘖指向我。我讀了很多關於如何處理特定頁面的東西,而不是/不應該在每次頁面加載時都執行的內容,而是大量使用「全部製作外部js」。有點討厭。 – Louis 2011-08-23 21:56:52