场景
我有一个ASP.NET网站,它在Internet 8中工作得很好,但是在Internet 10中非常慢。
问题
在8中,回发或按钮单击事件大约需要1,5秒才能完成。在internet 10中,它至少需要30秒,有时超过60秒。
我已经尝试过的
1.安装了微软网站的修补程序,以更新浏览器定义文件(http://support.microsoft.com/kb/2836939)
实数问题
ASP.NET是否仍然存在检测Internet 10作为浏览器的问题,或者浏览器之间响应时间的缓慢是否会成为web服务器(浏览器定义文件等)上的一个问题?
发布于 2014-09-16 11:05:46
当使用Internet浏览包含UpdatePanel的页面时,在单击启动异步回发的页面元素后会出现延迟(通常在10秒到45秒或更长的时间内)。当使用Internet Explorer以外的浏览器时,不会出现延迟。
PageRequestManager的_destroyTree方法在启动异步回发之前遍历UpdatePanel中的DOM元素,以便处理DOM元素。在Internet中,由于Internet的HTML (mshtml.dll)在内存中存储DOM元素的方式,在某些条件下使用大型DOM树时,Internet方法的具体实现非常慢。
将下面的JavaScript添加到页面关闭</body>元素之前,该页面正处于延迟状态。
<script language="javascript" type="text/javascript">
function disposeTree(sender, args) {
var elements = args.get_panelsUpdating();
for (var i = elements.length - 1; i >= 0; i--) {
var element = elements[i];
var allnodes = element.getElementsByTagName('*'),
length = allnodes.length;
var nodes = new Array(length)
for (var k = 0; k < length; k++) {
nodes[k] = allnodes[k];
}
for (var j = 0, l = nodes.length; j < l; j++) {
var node = nodes[j];
if (node.nodeType === 1) {
if (node.dispose && typeof (node.dispose) === "function") {
node.dispose();
}
else if (node.control && typeof (node.control.dispose) === "function") {
node.control.dispose();
}
var behaviors = node._behaviors;
if (behaviors) {
behaviors = Array.apply(null, behaviors);
for (var k = behaviors.length - 1; k >= 0; k--) {
behaviors[k].dispose();
}
}
}
}
element.innerHTML = "";
}
}
Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(disposeTree);
</script>https://stackoverflow.com/questions/25866439
复制相似问题