我試圖在UpdatePanel中放置一個用戶控件。 當顯示控件時,在文本框內部打字時在IE中有很大的延遲(6 & 8)。 FireFox具有出色的性能。不僅打字,而且滾動等都會經歷很長的延遲,持續幾秒鐘。IE瀏覽器在updatepanel部分更新後變慢
usercontrol(s)包含相當多的javascript函數,它們使用ScriptManager.RegisterScriptBlock
或RegisterStartupScript functions
重新註冊。
有沒有人有任何想法,爲什麼打字變得如此緩慢?我相信由於jQuery函數的重新註冊,它必須處理內存泄漏問題。但我無法找到它的來源。
Regards
感謝您的擁抱。我們實際上擁有各種各樣的javascript,我自己的,由同事編寫並嵌入我們框架團隊編寫的自定義控件中。我將看看委託事件和緩存(對於updatepanel之外的所有內容)。 – Ronald 2010-08-03 13:38:51
您使用Firebug分析器的建議幫助了很多。我不知道這個功能。我們發現代碼看起來像$('body')。keypress(function(){});.每次我們輸入一些內容時,這導致了大約50次調用。再次感謝您的好建議。 – Ronald 2010-08-04 13:21:03
$(body).keypress(..)is imo。事件轉授的反模式,因爲它是一個隨時可以觸發的聽衆。將監聽器綁定到最接近可能的祖先(即捕獲表單內的事件的表單元素或捕獲列表項的事件的ul元素)。此外,請考慮延遲附加事件偵聽器,何時需要它們,而不是始終onDomReady。 – BGerrissen 2010-08-05 20:30:05