六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 61|回复: 0

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

[复制链接]

升级  85.33%

46

主题

46

主题

46

主题

秀才

Rank: 2

积分
178
 楼主| 发表于 2013-2-7 03:42:35 | 显示全部楼层 |阅读模式
 
环境: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后一切都变得非常快了
 
 
再次打开网页:很快就打印出来了:'网页全部加载完毕了!'
 
问题解决 ^ ^
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表