Javascript 信号员及;IE问题-投票待定
我对IE和SignalR有问题,我正在使用它在两个数据库之间执行同步操作,这些操作在所有场景中都在Google Chrome/Firefox/Safari上成功完成 第一次使用IE,同步成功执行,但只执行了一次,第二次是挂起的请求堆栈和页面永久冻结。 我在网上找到了一个改变交通方式的解决方案。 但佩奇仍然僵硬Javascript 信号员及;IE问题-投票待定,javascript,jquery,internet-explorer,signalr,signalr-hub,Javascript,Jquery,Internet Explorer,Signalr,Signalr Hub,我对IE和SignalR有问题,我正在使用它在两个数据库之间执行同步操作,这些操作在所有场景中都在Google Chrome/Firefox/Safari上成功完成 第一次使用IE,同步成功执行,但只执行了一次,第二次是挂起的请求堆栈和页面永久冻结。 我在网上找到了一个改变交通方式的解决方案。 但佩奇仍然僵硬 if (isIE()) { $.connection.hub.start({ transport: ['serverSentEvents','foreverFrame']}).don
if (isIE()) {
$.connection.hub.start({ transport: ['serverSentEvents','foreverFrame']}).done(function () {
progressNotifier.server.DoMyLongAction();
});
}else{
$.connection.hub.start({ transport: ['serverSentEvents','longPolling'] }).done(function () {
progressNotifier.server.DoMyLongAction();
});
}
我正在使用:
SgnalR v2.1.0.0
.Net framework v4.5
jqueryv1.8
这是个问题还是我做错了什么
编辑
我的应用程序使用Jquery进度条,我使用以下代码更新此进度条:
服务器端:
Clients.Caller.sendMessage(msg, 5, "Accounts");
客户端:
progressNotifier.client.sendMessage = function (message, value, Entity) {
pbar1.progressbar("value", nvalue);
};
它在Firefox上运行,所以我认为这是一个信号器问题!!现在我感到困惑,如果它按预期工作,那么是什么导致了这个问题?您在网上找到的解决方案不太可能帮助解决您的问题 我怀疑您的
IsIE()
函数是否正确识别IE。如果是,Signal应该只尝试建立“foreverFrame”连接,因为IE甚至不支持“serverSentEvents”。我不希望IE发出任何“/signalr/poll”请求,因为这些请求仅由“longPolling”传输发出
此外,在IE F12工具的“网络”选项卡中有一个“待定”轮询请求也是完全可以预料的。这就是设计的工作原理。基本上,一旦收到消息,客户机就会发出一个新的ajax请求(长轮询)来检索新消息。如果没有立即可用的新消息,服务器将等待(对于SignalR,默认情况下最多110秒,而不是永远等待)新消息发送到客户端,然后再使用新消息响应挂起的长轮询请求
除了在“网络”选项卡下显示挂起的轮询请求外,您能否明确说明您遇到了什么问题?如果您提供控制台输出,并在网络选项卡中显示所有“/signalr/…”请求,也会有所帮助。您可以尝试使用
EventSource
(SSE)
我用的是:
但对信号机进行了修改:
我用它工作了一年,signer只需检查
窗口。EventSource
,它就工作了。你是对的,IsIE()函数在IE11上没有正常工作,但是未决问题仍然存在,但方式不同“/signer/connect?transport=foreverFrame…”控制台每隔几分钟就会出现一次ping。我将解决方案复制到不同的服务器,它在那里工作正常,我尝试进行IIS重置并清除浏览器缓存。。。还有什么我遗漏的吗?两个服务器使用相同的.net framework 4.5作为长轮询,您可能会看到挂起的“/signal/connect?transport=foreverFrame…”请求/ping请求也应每5分钟发出一次。在不进入“网络”选项卡的情况下,您能解释一下您的应用程序到底出了什么问题吗?什么是意外行为?为什么这是一个公认的答案?它甚至不能解决问题答案是“网络”选项卡中的挂起信号器请求不是问题,这是预期的行为。@halter73那么我们如何减少默认等待时间?我想把价格降到10英镑左右。