2011-07-12 50 views
3

我熟悉鏈接CSS與嵌入式和嵌入式對於可維護性和模塊性的好處。不過,我已經讀過,在某些web dev的移動應用程序中,嵌入甚至嵌入你的CSS可能是有益的(更快的性能)。 我會避免任何內聯JS,並在較小程度上CSS,但我已經注意到許多網站包括豐富的谷歌網頁,JS嵌入在頁面的標題。嵌入式vs鏈接的JS/CSS

我的同事堅持總是鏈接到外部的js文件。我認爲,如果函數特定於一個頁面或每頁略有不同,則嵌入js更有意義,以節省鏈接腳本的處理開銷。

+0

很高興看到「從不混合腳本和html」的口頭禪灰心。有時候,在HTML中添加腳本(作爲元素或處理程序)是有意義的,有時它不會。無論客戶端可以執行什麼腳本添加邏輯,服務器也可以這樣做。其餘的答覆幾乎涵蓋了其中。 – RobG

回答

3

鏈接一個腳本招致一個額外的請求到服務器的形式小罰款。如果您保持內聯,則不會提出此請求,根據情況您可能會獲得更快的加載頁面。這是有道理的內聯代碼,如果:

  • 它非常的小
  • 它dynamcally產生從那以後你就不會得到緩存的好處,反正

在谷歌的情況下,和Facebook最有可能看到內嵌JavaScript,因爲它是由服務器端代碼生成的。

2

鏈接的JS文件的優點是它們可以被瀏覽器緩存並從本地磁盤或後續頁面的內存中加載。

內聯JS的優點是每頁可能有更少的網絡請求。

最好的折衷方案通常是少量鏈接的JS文件(一個或兩個),它們包含所有JS的最小化組合,因此它們被組合成儘可能少且儘可能小的文件。

獲得本地緩存的好處遠遠超過了一些可能不會在某些頁面上使用的JS的額外解析。

有意義的嵌入式JS(甚至大部分JS都在鏈接文件中)是包含特定於頁面的狀態的幾個JS變量的設置。這通常會嵌入到頁面的部分,因爲它是在服務器上動態生成的,對於每個頁面都不同,並且通常不可緩存。但是,這些數據通常應該很小並且特定於頁面。

5

其他答案沒有涉及的一件事就是開發者效率。如果更容易將其內聯,並且沒有立即的性能要求/關注,那麼就這樣做。真正的商業價值「簡單」,並且勝過最終或不存在的性能問題。不要過早地優化。

+1

我遲到了一年以後才認同這一點。我通常會得到一些非常特定於頁面的js,並且我發現在開發過程中一個大的單個js文件變得非常麻煩並且很難處理。最後,在網頁底部的