2014-12-03 172 views
0

這是一種反模式嗎?加載服務器端資源文件

對於在Django項目中的兩個模板文件之間重複的JavaScript和/或CSS代碼,我們將該代碼放入一個公共資源中。然後可以通過來自客戶端的單獨請求加載該資源(如靜態.js和.css文件的情況),或者將其放入模板文件並加載到使用服務器端的模板中,從而避免額外的請求這是通過創建額外的.js或.css文件(或增加現有.js或.css文件的大小)而產生的。

目前我的工作習慣是喜歡後一種方法,而我更喜歡前者。我看到在服務器端,而不是創建額外的靜態文件或添加到現有的靜態文件與裝載模板文件中的以下問題:

  • 在服務器上,我們避免請求通過加載資源文件的數量是微不足道的,由於緩存。
  • 模板的大小隨着可緩存的代碼的增加而增加,這意味着更多的數據通過線路發送。
  • 這種做法將CSS和JavaScript代碼分散在標記爲html模板的文件中,儘管它們完全缺乏實際的html文本。
  • 當通用代碼在我們網站上的兩個以上頁面中常用時,我們可能需要創建額外的靜態文件(或添加到現有的文件)。
  • 保持JavaScript與DOM分離通常是一種好的做法;服務器加載的資源文件對鼓勵這種做法並沒有多大作用。

那麼,這是一種我們應該避免的反模式,還是最佳實踐?爲什麼?

回答

1

我在這個問題上的2美分 性能明智: 如果JS對於着陸頁渲染很重要,請將其內聯爲模板。 否則,我通常會爲您的方式(外部JS文件)投票,也許使用異步,當然,將鏈接放在頁面的末尾。 但是它有些像小尺寸腳本的情況,內聯方法可能有意義。

相關問題