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非常容易实现。
浙公网安备 33010602011771号