SignalR - 永远在IE帧的闲置几分钟后停止工作(SignalR - Forever Fra

2019-09-22 03:18发布

我在IE9使用SignalR,不幸的是,它具有降解使用永远边框连接。

我花了一些时间在IE浏览器的开发者工具看这个。 我可以看到回调装入动态插入iframe和他们所谓的SignalR插件接收功能。 然而之后的这些关于20/30它只是停止响应 - 我再也不能从服务器调用客户端脚本。

我猜测的IFrame的负载最终超时,但似乎没有提出此事件,所以我不能强迫重新连接。

有没有人得到了一个强大的SignalR连接工作在IE?

谢谢 :)

Answer 1:

我们有一个地方的网站将停止工作的Javascript,特别是我们注意到这在Ajax调用是行不通的问题。 经过一番调查,我们发现,SignalR是坠机的原因,我们发现这个职位是永远的帧。 我们试图消除永远帧的支持在SignalR在客户端的JavaScript下面的代码:

$.connection.hub.start({ transport: ['webSockets', 'serverSentEvents', 'longPolling'] });

因此,仅支持 '的WebSockets', 'serverSentEvents', 'longPolling'。



Answer 2:

根据这个 Github的问题,这是固定在jQuery的1.10.1。

这个问题在1.9.x的引入和固定在1.10.1。

用jQuery运行1.8.1似乎太工作。

解决方法:更新的jQuery



Answer 3:

每当我看到这样的情况,我实际上有流氓,僵尸IE9在后台运行的进程。 他们甚至都没有与他们相关联的窗口。 所以,我会去杀死那些僵尸关闭并重新启动IE浏览器的一个新实例,而不是有一个问题很长一段时间,直到一切anamoly导致该问题再次发生。

听起来疯狂,我知道,但我花了很长时间来解释大卫福勒问题的症状,我怎么可能永远也看不到任何理由的iFrame奇迹般地停止射击的事件有运输知道,开始下一个iFrame的会议。 该SignalR消息本身总是终止逻辑消息流正常,onreadystatechange事件就只是停止射击。



Answer 4:

把这个文档准备事件和所有的IFRAME的问题将得到解决:

$.connection.hub.start({ transport: ['webSockets', 'serverSentEvents', 'longPolling'] });


文章来源: SignalR - Forever Frame in IE stops working after a few minutes of being idle