页面关闭时postback,导致IE假死的分析

本文分析了一个表单在IE浏览器中因关闭页面而触发postback提交导致假死的现象。该问题由JQuery在页面卸载时自动给元素附加属性引发,进而触发了文本框的onpropertychange事件。文中提供了两种解决方案:移除JQuery或调整事件处理逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天有个表单在打开页面并关闭后,就再也无法打开了
这个问题和之前的表单设计工具的问题有些类似,查了一下,原因如下:
在IE窗口关闭的时候产生了postback的提交,服务器端执行完毕后,response的数据无法处理导致假死
 
引发postback的是页面上两个textbox的onpropertychange事件
按理说,未修改相关Element的相关属性值是不会引发onpropertychange事件的
我追踪了一下,发现是因为页面上引用了JQuery,JQuery在页面unload的时候会自动给element附加一些属性,类似下图
所以在页面关闭的时候,触发了textbox的opropertychange事件,并进一步触发了服务端控件的回发
 
 
这个问题的解决方法有如下两种
1:如果JQuery没用,去掉JQuery即可
2: Jquery有用的话,要么在onpropertychange中判断属性,根据属性决定是否回发;要么去掉此事件,把处理逻辑放到其他源事件中
 
再进一步分析IE会什么会假死,猜测如下
一般IE执行网络访问时,一个进程默认会产生最多3个网络连接访问服务器
但现在这种状况下,IE将request完毕后,这几个网络连接在收到response后,将数据传给IE原来的页面时
原来的页面却因为关闭没有了,所以这几个网络连接要么处于堵塞状态,要么产生异常挂了,所以当前IE进程就再不能执行网络访问了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值