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非常容易实现。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架