[疑难问题]含有active的网页加载缓慢

 

环境:windows sp2/sp3 + IE7

现象:包含有Active的网页加载时——A 有互联网时此页面访问速度还正常 B 只有内网时访问此页面感觉缓慢无比

 

解决IE在不能上因特网时Active加载慢问题:

定位object加载问题:

 

<object classid="clsid:XXX" width="0" height="0" id="icRwObj" ></object>
<script type="text/javascript">
	$(document).ready(function() {
		alert('网页全部加载完毕了!');
	});
</script>

打开页面时:发现页面内容已经显示,说明网页不慢,但迟迟不打印:'网页全部加载完毕了!';大约需要20s才能打印出来

 

监控tcp通讯(wireshark):发现页面显示后,active加载停顿的20s,在不断的dns查询active.microsoft.com,在有网络情况下发现是请求此url: http://activex.microsoft.com/objects/ocget.dll

查询网站,找到微软官方回答

 

所以只要设置codebase到一个不存在的地址就可以了,设置为http地址,不行,会弹出安装active提示;设置为本地地址,一切OK

 

解决:object添加CODEBASE="C:\WINDOWS\system32\" CodeBaseSearchPath='<%=request.getContextPath() %>/' 两个属性就可以了

 

首先:严重向给为之前看到前一段删除的文字的兄弟姐妹们道歉——因为那是错误的

以上被删除的文字严重阻碍了您的视角和思维,因为此方法完全错误,今天在演示后,发现使用以上文字操作后,active根本加载不了,怪不得网页加载变快

 

最后查询注册表发现此activex的classid在系统中根本不存在,怪不得它需要去微软的站点查找此classid的控件;

发现系统存在两个读卡activex;其中一个已经被替换了,但是写jsp的人未更新,或者直接copy了老的classid的activex代码导致的,因为此activex找不到,故页面加载时不断的访问网络,请求此activex,更新此classid后一切都变得非常快了

 

 

再次打开网页:很快就打印出来了:'网页全部加载完毕了!'

 

问题解决 ^ ^

 

你可能感兴趣的:(JavaScript,windows,互联网,IE,Microsoft)