A script on this page is causing Internet Explorer to run slowly. If it continues to run, your computer may become unresponsive
[問題描述]
包含ajax的頁面中,調用資料層的方法更新資料庫,其中一個欄位的內容比較長,10萬多字.
存取過程用了HtmlEncode和HtmlDecode.
現在的問題是:
1. 當輸入一般字元時,輸入10萬多或者20萬多,運行正常.
2. 從word中拷貝帶有";/SPAN></P><P class=MsoNormal"等特殊字元,特殊格式的段落,html代碼,javascript代碼,web.config檔案的配置節時:
(a) 當字數較少(大概1萬字)的時候,運行正常.
(b) 當字數較多(超過5萬)的時候,就會彈出如下錯誤提示:
彈出錯誤提示後,網頁功能就失效了,再點頁面上的按鈕都沒反應了.
我跟蹤了一下,發現錯誤對話方塊的彈出是在伺服器端代碼執行完畢,而ajax的EndRequest事件還未觸發的期間內彈出的.
我實驗了以下的方法
1. Server.ScriptTimeout = 20.不行.
2. 同時修改 Server.ScriptTimeout 和 web.config中的executionTimeout為較小的值.不行.
3. 不用HtmlEncode和HtmlDecode,還是不行.
這到底是怎麼回事哪?該怎麼解決那?
不要告訴我不要輸入那些字元哦,那些都是必須輸入的.呵呵.
請指教,謝謝
[解決方案]
自己搞定:
原來當一個div內的資料非常多的時候,當通過頁面上的控制項將div的值改變的時候,就會運行很慢或者出現這個提示。
所以我的處理方法是:
在觸發這個div改變的控制項開始發生Request的時候,首先將div的值清空或者設定成很簡單的值,比如 ”Processing…”, 然後在請求結束的時候再將值賦回來。
這個通過ajax的PageRequestManager的InitializeRequest和EndRequest非常容易實現。