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非常容易实现。

posted on 2007-05-31 15:02  今夜太冷  阅读(1220)  评论(3)    收藏  举报