2013-07-17 75 views
4

我正在使用ASP.NET MVC包來組織和優化我的腳本和CSS。我目前正在開發的網站需要在移動網絡上表現良好,所以我試圖將所有的html,JavaScript和CSS都放到一個請求中。有沒有什麼辦法讓MVC包內聯其所需html的內容?ASP.NET MVC內聯包

回答

3

是的,有。我已經寫了關於如何內聯腳本和樣式包的博客,因爲我面對的是完全相同的問題。這裏的帖子:

的基本思路是抓住那個年代由System.Web.Optimization框架創建的BundleResponse<style><script>標籤內發出其內容。

0

我不認爲這樣做是個好主意。

從YSlow的最佳實踐

http://developer.yahoo.com/performance/rules.html#external

在現實世界中使用外部文件通常產生更快的網頁,因爲JavaScript和CSS文件被瀏覽器緩存。每次請求HTML文檔時,都會下載HTML文檔中內聯的JavaScript和CSS。這減少了所需的HTTP請求數量,但增加了HTML文檔的大小。另一方面,如果JavaScript和CSS位於瀏覽器緩存的外部文件中,則HTML文檔的大小會減少,而不會增加HTTP請求的數量。

+0

感謝您的回覆。我明白上述所有。我試圖實現的是一個網站,它顯示了在未緩存的狀態下,在一個不起眼的3G網絡中,第二個呈現的頁面。 600毫秒或更長時間的延遲並不罕見,因此發出第二個請求以檢索對頁面初始顯示至關重要的更多資源是不可取的。 –

+1

您網站上有多少頁?如果你內聯你所有的javascript和css,它不會爲後續請求緩存。因此,儘管按照你的方式,第一個請求可能會更快,但對於其他頁面的所有後續請求都會比較慢,因爲您必須重新加載所有js和css。除非你的網站上只有1頁。 –

+1

很多頁面。雖然有兩個肯定會最常訪問。我正在根據經驗法則,20%的頁面請求將來自用戶,而且緩存中沒有任何內容。我想將CSS和JavaScript初始頁面顯示爲內聯,然後再加載其他資源。只要所有請求都在不到一秒內呈現,我很高興後續頁面可以花費更長的時間進行渲染。 –