2009-02-25 27 views
10

這個問題幾乎已經說了一切。將JavaScript放在標題之外有多糟糕?

我開始爲我的weekend project添加一些功能。這對我和一對朋友來說是一個小應用程序,因爲我們是交換學生,對我們來說它是有用的。

但事情是以下幾點,我在php中做這件事,並用include函數構造所有東西,這樣我就可以將代碼分開。這些代碼中的一部分依賴於javascripts snipets,因此將javascript放在正文中有多糟?或者,我應該只做雙包括所以JavaScript停留在標題?

回答

2

將Javascript放入正文中是完美的。甚至有「內聯」Javascript這樣的東西。只是不要過頭。如果你可以將你的腳本打包到一個單獨的文件中(這並不總是可行的),它會使你的代碼更易於維護。

1

有好的壞的理由去做。

GOOD)如果腳本對構建頁面DOM並不重要,那麼儘可能晚做一點,如Jim Puls所建議的,通常位於根BODY節點頁面的最底部。這很好,因爲它允許XHTML立即渲染,從而產生一個心理效應,即頁面「加載更快」。實際上,它以相同的速度加載,除了瀏覽器不花費CPU週期下載,解釋和運行JS,而用戶盯着白色瀏覽器窗口。

不良)腳本標記通常會按照它們被包含的順序下載解釋。這意味着您需要仔細管理它們的包含順序。另外,因爲它們是連續加載的(一次一個),所以你爲每個引用的附加文件支付高額費用,因爲瀏覽器必須建立連接,檢查緩存,下載等。像IE的「DEFFER」這樣的技巧並不是標準的。出於這個原因,我強烈建議當你從開發到生產時把你的javascript打包到單個文件中,以便用戶不必串行連接多個連接。另外請確保您已開啓gzip壓縮。

GOOD)有一種方法可以使用AJAX延遲加載腳本 - 您可以調用服務器請求JS,並在加載文件時引發事件。然後你可以調用eval(或者一些更安全的變體),將它的符號帶入範圍。這允許腳本的並行下載。

GOOD & BAD)在IE中,您必須避免在DOM完全加載之前操作DOM樹。查看這個'do​​m:loaded'事件。