2008-08-14 139 views
24

我有一個支持Ajax.Net的ASP.Net 2.0網站。網站和數據庫的託管都與數據庫的架構無關。在硬件測試中,我確實控制網站在客戶端的硬件上運行良好,但重新加載或更改頁面時出現明顯的延遲。加速ASP.Net網站或應用程序

我想要做的是讓我的應用程序儘可能緊湊和快速,當我提供它。其中一個想法是爲所有網站的靜態資源設置到期日期,以便在頁面加載時不會收回。資源我的意思是圖像,鏈接的樣式表和JavaScript源文件。是否有捷徑可尋?

還有什麼其他方法可以優化.Net網站?

更新: 我已經在網站上運行YSlow,並且我遇到的最困難的區域是正在加載的JavaScript和樣式表的數量(23個JS文件和5個樣式表)。 Ajax.net和Asp已經插入了所有主要樣式表(主樣式表)。爲什麼這麼多?

回答

0

您可以根據支持它的客戶端打開壓縮。看到這篇文章:link text

0

靜態資源不應該被重新發送,除非改變。 IIS將發送一個響應代碼,告訴瀏覽器使用緩存版本。

3

默認情況下關閉viewstate,即使是最簡單的頁面,它也會是夜晚和日間的差異。

1

我認爲您真的需要能夠從應用程序獲取一些實際的PerfMon數據/遙測,同時在生產環境中運行,以便能夠就優化的內容做出明智的決定。

作爲扔掉的提示,我會確保你的應用程序在你的web.config的「編譯」部分部署爲發佈構建和設置調試=「假」。

5

如果你使用Firefox來測試你的網站,你可能想嘗試一個漂亮的Firefox擴展從雅虎!稱爲YSlow

它會分析您的網頁,併爲高性能網站提供A-F(A爲最佳,F爲最差)的各個等級的最佳實踐等級。它將幫助你追蹤你的網站的元素,你可以優化以獲得加速。

1

您似乎開始時假設您的問題是下載大小 - 可能不一定是這種情況。您應該對ASP.NET網站進行一些實驗,以確定代碼中是否存在導致不當延遲的區域。如果發現下載大小不是您的問題,您需要找到緩存結果的方法(查看輸出緩存,這是ASP.NET功能)或優化代碼。

在任何情況下 - 在性能問題看時,第一步是總是首先驗證你的假設,再決定行動方針。

2

我寫了一個關於blog post提高ASP.NET頁面的性能這幾個月回來。這裏有一些快速&簡單的方法 -

  • 關閉視圖狀態
  • 關閉事件驗證
  • 實現HTTP的gzip/deflate壓縮,以降低響應大小(服務器發回的字節數客戶端)
  • 嘗試優化/最小化您的數據庫調用每個請求
1

你可以開始尋找緩存策略。 CSS(甚至是壓縮文件)和圖像(甚至是優化文件)等靜態文件只需要瀏覽器下載一次即可。

Scirpt combined for AJAX已被提及,但我沒有注意到引用了ScriptReferenceProfiler MS在codeplex上發佈的幫助弄清楚要合併的內容。邁克奧蒙德has a good start point on this

另一個提示,如果你正在爲你的數據庫做很多插入操作,那就是仔細檢查你的服務器的磁盤緩存是否打開。舉例來說,我有一個數據導入器在運行期間執行了120萬次插入。花了4小時,沒有緩存就改變了。花了16分鐘的時間。

1

使用ASP.NET和Ajax(阿賈克斯的任何一個時,一般的事情庫)一起是爲了避免對你的Page_Load和Page_Init(及其方法對象)進行大象處理,因爲它們將在每個Ajax請求上執行。

當那是說我會認真溝ASP.NET AJAX和使用任何其他 ...

Anthem.NET,AjaxPRO.NET,jQuery的或什麼比ASP.NET AJAX否則...

當然我會自己使用Ra-Ajax,因爲那是我的項目。但後來我又偏向...

+0

插頭插頭.... Zzzzzz – redsquare 2008-11-24 14:37:22

相關問題