2015-04-24 90 views
0

爲了減少http請求,我使用grunt將所有腳本合併爲2個文件:scripts-head.js和scripts-body.js。加載JavaScript文件 - 條件級聯

有些腳本(例如墊片)只需要傳統的IE瀏覽器就可以使用。所以我應該:

  1. 使用像<!--[if lt IE 9]>這樣的條件註釋 - 但現在這意味着更多的http請求。
  2. 只需將舊版IE腳本與其他連接文件一起添加 - 這將導致現代瀏覽器使用額外的未使用代碼,但意味着更少的http請求。
  3. 另一種選擇?? (某種方式來執行條件級聯?)
+0

哪個更大的瓶頸?如果腳本被緩存並且只從服務器請求一次,那麼更多的請求可能並不壞。另一方面,如果組合腳本在被髮送之前被壓縮,則「在線上」的尺寸差異可能不會明顯更大。 –

+1

你有多少「遺留代碼」? – RobG

回答

1
  1. 使用條件註釋。這種方式更清潔。
0

我認爲現在普遍的一致意見是,人們不用擔心瀏覽器版本(你無法跟蹤它們全部),而是使用像Modernizr這樣的庫進行特徵檢測,併爲缺少的特徵加載polyfills。

Modernizr本身帶有一個異步加載器,允許您根據功能測試的真實性來指定加載填充腳本(閱讀:如果需要,只發布對polyfills的額外請求)。

在任何策略中,不要擔心這一個額外的HTTP請求,因爲一旦瀏覽器緩存文件,就不會有任何請求。