目前使用我们网站系统的客户那边生了一个棘手的问题,调查了很久一直没有找到原因。
应为不方便透露客户信息,下面的那些代码里包含客户信息的部分使用xxx等代替。
[问题点]
当点击站内页面上某个特定的检索按钮后,会弹出一个新的IE窗口,新窗口的打开方式是使用form的submit(post)方式,target指向固定名字的IE窗口,并同时提交request,然后在新窗口中显示后台处理后的数据页面。
现在的问题是,当点击按钮后,有时候新的IE窗口弹出后,
一直是白板页面,什么都不显示。地址栏中一直显示请求的URL,旁边绿色的圈也一直在转。过了大概五六分钟之后,便会跳转到internet
explorer 无法显示网页的页面。
根据调查显示,用户那边的发生率大概为5%左右。(600次左右的点击量)
并不是在个别用户身上发生,很多用户都发生过这个现象,而且客户使用的是公司标准设定的IE8,基本排除安装乱七八糟的AddON造成的影响。
[相关信息]
客户使用环境:Windows7 + InternetExplorer8
页面程序摘要:
<form id="ecform" target="_newWindow" action="EcSearch.action" method="POST" >
$(#ecform).submit();
[相关调查]
通过一个测试页面来访问Submit(get方式)我们网站上的某个页面,通过不停的点击按钮和关闭打开的新画面来进行测试。
也会有一定几率发生白板页面的现象。
<form method="get" action="http://xxx.xxx.xxx.xxx:xxxx/xxx/xxxx.action" target="_blank">
<input type="submit" id="testBtn" value="test"/>
<input type="hidden" name="value0"
value="aaa"/>
<input type="hidden" name="value1"
value="bbb"/>
</form>
一旦白板页面发生后,把白板页面关掉,在白板页面的IE进程iexplore.exe消失前(默认60秒后自动关闭进程),再次通过测试页面的按钮来打开新窗口,依然是白板页面。
但是在发生白板页面问题的IE窗口上访问其他网站是正常的,而访问我们网站上的任何url都是无限请求的状态。
Ctrl+n将请求中状态的白板页面复制一个出来却能正常打开页面。
我们怀疑IE8内部因为某种原因导致请求无法发送出去,但是不知道是什么原因导致这个IE进程出现问题。
我们用HttpWatch和Fiddle工具进行IE的通信监测,发现白板现象发生的时候,该请求并没有被IE发送出去。