2012-10-09 31 views
11

我明白如何使用asp.net的新捆綁和縮小功能。他們在開發過程中有幫助。在運行時ASP.NET綁定和縮小的好處是什麼?

雖然在生產部署中使用它們有什麼好處嗎?如果您只是將捆綁/縮小的文件放在Web服務器上,系統性能會更好嗎?看起來總的來說,如果只是靜態文件,代碼就會少運行。

注:我瞭解js/css捆綁和縮小的好處。我只質疑使用活動運行時進程在生產系統中生成這些文件的價值,而不是簡單地將它們存儲在磁盤上並將它們作爲靜態文件引用。

回答

15

捆綁和縮小在生產中比在開發中更有用。 它可以顯着提高您的首頁命中下載時間。

  • 通過捆綁多個CSS文件和JavaScript文件合併成單一的CSS文件和JavaScript文件降低了個人HTTP請求到服務器的數量。

  • 通過刪除空格,註釋和其他不必要的字符,縮小縮小了CSS和JavaScript文件的文件下載大小。

這樣的小優勢在生產環境中比在開發中更顯着。所以最好在捆綁和小型化生產中使用。

針對您的問題,在運行期間沒有明顯的捆綁/縮小優勢。這個功能只是爲了讓開發者的工作更輕鬆。因此,如果您確信自己在做什麼,那麼在生產環境中手動捆綁/縮小資產會更好。

更新: 根據MSDN有運行

捆綁和縮小在ASP.NET 4.5中的捆綁/縮小一個真正的好處是在運行時進行的,所以這個過程可以識別用戶代理(例如IE,Mozilla等),並因此通過鎖定用戶瀏覽器來提高壓縮率(例如,當請求來自IE時,刪除Mozilla特有的東西)。'

動態的力量捆綁是你可以包含靜態Jav aScript,以及其他文件的語言,編譯成JavaScript.`

例如,CoffeeScript的是一種編程語言,編譯成JavaScript上線

+0

如果你要複製並粘貼從別的地方一段文字,請包括一個鏈接到源。 – LittleBobbyTables

+1

對不起,我一定不清楚。我將編輯問題更清楚。我瞭解使用捆綁/縮小文件的好處。我只是在質疑我們是否需要在生產中使用捆綁和縮小過程。爲什麼不使用捆綁/縮小資產? – gidmanma

+0

夥計們,這並沒有回答這個問題。問題在於你爲什麼要在生產中生成捆綁/縮小的文件,而不是將它們部署爲靜態文件。 – gidmanma

1

Minification-較小的文件,少KB,更快的頁面加載。

捆綁 - 瀏覽器限制每個http主機的連接。這意味着用戶訪問您的頁面,並且您有(假設)24個腳本和鏈接(css)標籤,您的瀏覽器一次處理它們6(大多數瀏覽器的限制) - 減慢頁面加載速度。 捆綁使瀏覽器將所有文件都視爲單個文件 - 覆蓋此限制。

+0

這不能回答這個問題。問題在於你爲什麼要在生產中生成捆綁/縮小的文件,而不是將它們部署爲靜態文件。 – gidmanma

+0

爲真。沒有看到它。 – motime

+0

至於真正的問題,我沒有看到部署靜態文件的好處。通過適當的緩存策略,即使您的應用需要生成文件,它也會生成一次。另一方面,如果您使用靜態文件,則將另一個(冗餘,如果我可以這樣說)添加到您的部署計劃中。 – motime

1

捆綁和縮小提供了2個基本功能,以提高頁面加載的性能。

捆綁 - 將所有提供的腳本/ CSS綁定到一個文件中,以便只有瀏覽器需要加載一個文件而不是多個文件。
注意 - >一般瀏覽器都可能只有6同時請求對從服務器獲取資源。其他請求會被瀏覽器排隊等待處理。因此,如果我們有多個文件,那麼它可能不得不在請求隊列中等待。

縮小 - 縮小過程通過刪除註釋,多餘的空格和重命名變量名稱來生成縮小文件。所以這減少了文件的大小,並導致更快的下載。

+0

問題是不是捆綁/縮小,但關於是否在運行在生產服務器上做踏踏實實budling /縮小文件的過程,而不是僅僅部署捆綁/縮小的文件作爲部署過程的一部分。 – gidmanma

0

捆綁的另一個好處是它降低了緩存的問題。當我們使用一個密鑰將其加載綁定到頁面時,如下所示。

<script src="/bundles/jquery?v=FVs3ACwOLIVInrAl5sdzR2jrCDmVOWFbZMY6g6Q0ulE1"></script> 

每次我們改變我們的腳本時,它會生成不同的密鑰。所以如果我們改變了某些東西,文件將被緩存。但是當我們不使用它時,因爲腳本文件具有相同的名稱,有時我們必須清除緩存以查看更改。