2013-02-26 112 views
1

我遇到的問題是特定頁面上的按鈕單擊事件發生偶爾性能低下的問題。有些時候它在正常的參數範圍內表現良好,但似乎只要服務器處於中等負載(意味着我們可以在我們的生產環境中而不是在我們的開發或測試環境中產生這個問題),它似乎只是掛起。啓用跟蹤後,我發現它似乎只是在Begin PreRenderComplete和End PreRenderComplete之間掛起。它只是坐在那裏接近30秒。我沒有任何在該事件空間中執行的特定代碼。我的理解是,這個事件應該是生命週期中的非事件,因爲它只是確保PreRender階段完成。這個頁面有大量的控件,因此具有相當大的視圖狀態,但我的理解是視圖狀態是在LoadState和SaveState事件中處理的,這些事件看起來並不是我所有時間都在吃的階段。Asp.net PreRenderComplete花費很長時間才能完成

我已經對服務器運行perfmon,並且有時我能夠產生這種行爲系統資源是正常的,沒有請求排隊。我試圖瞭解幕後會發生什麼樣的行爲,導致這種緩慢。

回答

0

頁面上是否存在異步操作?我認爲異步調用將在該事件之前完成,因此如果其中一些需要一段時間,比如數據庫速度慢或網絡呼叫速度較慢,可能會導致延遲。

+0

我在頁面上看不到任何異步操作。你是否說在異步事件會在PreRenderComplete階段處理? – user1778199 2013-02-26 19:01:02

+0

@ user1778199我相信異步事件會在* PreRenderComplete之前完成,如果我是對的,那麼可能表明緩慢的異步請求會「阻止」該事件。但如果沒有異步,那可能不是。 – Eilon 2013-02-26 19:46:40

+0

這就是我認爲的異步事件的時間,但奇怪的是我的時間是介於Begin PreRenderComplete和End PreRenderComplete之間,除非我有特定的代碼應該在該階段沒有做任何事情的時候正確地做? – user1778199 2013-02-26 20:12:26

0

我想我已經找到了問題。通過更深入的分析,似乎我的ScriptManager控件導致了嘗試組合腳本的延遲。顯然,這隻在加載時出現問題,大部分發生在prerendercomplete事件中。通過設置CombineScripts =「false」屬性,它似乎清除了這個問題。

+0

你究竟是如何設置'CombineScripts =「false」'? – 2015-09-03 16:52:14

相關問題