具有 AJAX 和 SignalR 的 MVC 5 应用程序在 Chrome 中挂起
MVC 5 application with AJAX and SignalR hangs in Chrome
我有一个使用 AJAX 调用和 SignalR 的 MVC 5 应用程序。当执行以下操作顺序时,应用程序挂起 Chrome:
用户访问页面 A,页面加载后控制台如下所示
SignalR: serverSentEvents transport starting.
SignalR: Attempting to connect to SSE endpoint
SignalR: EventSource connected.
SignalR: serverSentEvents transport connected. Initiating start request.
SignalR: The start request succeeded. Transitioning to the connected state.
SignalR: Now monitoring keep alive with a warning timeout of 13333.333333333332, keep alive timeout of 20000 and disconnecting timeout of 30000
用户点击页面 A 的 link 调用 AJAX 调用
- 来自 2.returns 的 AJAX 调用成功并且 UI 通过 jQuery
更新
用户通过 F5 启动页面刷新,页面加载后控制台如下所示
SignalR: serverSentEvents transport starting.
SignalR: Attempting to connect to SSE endpoint
SignalR: EventSource connected.
SignalR: serverSentEvents transport connected. Initiating start request.
用户尝试通过单击一个简单的 link(具有 href 属性的标记)进行导航,并且该站点挂起大约 2 分钟,直到提供新页面
我注意到在 4. 之后控制台不显示
SignalR: The start request succeeded. Transitioning to the connected state.
SignalR: Now monitoring keep alive with a warning timeout of ...
行,所以我猜它与 SignalR 有关。
有没有人在过去遇到过如此巨大的延迟并且知道如何避免它?
我试过了
- 更改 SignalR 的传输协议
- window.onbeforeunload 解决方法
- 不同的 jQuery 版本
- 还有 1000 件我已经不记得的东西
非常感谢任何帮助,因为我 运行 没有想法。
这个问题是在使用 Orchard 时发布的。将 Orchard 更新到 1.10.1 后,超时消失了,SignalR 现在可以在 Chrome 中完美运行。
我在更新到 1.10.1 时检查了每个代码文件,发现 Owin 和会话内容发生了一些变化,所以我认为这是 Owin 或会话实现/处理的问题。
我有一个使用 AJAX 调用和 SignalR 的 MVC 5 应用程序。当执行以下操作顺序时,应用程序挂起 Chrome:
用户访问页面 A,页面加载后控制台如下所示
SignalR: serverSentEvents transport starting. SignalR: Attempting to connect to SSE endpoint SignalR: EventSource connected. SignalR: serverSentEvents transport connected. Initiating start request. SignalR: The start request succeeded. Transitioning to the connected state. SignalR: Now monitoring keep alive with a warning timeout of 13333.333333333332, keep alive timeout of 20000 and disconnecting timeout of 30000
用户点击页面 A 的 link 调用 AJAX 调用
- 来自 2.returns 的 AJAX 调用成功并且 UI 通过 jQuery 更新
用户通过 F5 启动页面刷新,页面加载后控制台如下所示
SignalR: serverSentEvents transport starting. SignalR: Attempting to connect to SSE endpoint SignalR: EventSource connected. SignalR: serverSentEvents transport connected. Initiating start request.
用户尝试通过单击一个简单的 link(具有 href 属性的标记)进行导航,并且该站点挂起大约 2 分钟,直到提供新页面
我注意到在 4. 之后控制台不显示
SignalR: The start request succeeded. Transitioning to the connected state.
SignalR: Now monitoring keep alive with a warning timeout of ...
行,所以我猜它与 SignalR 有关。
有没有人在过去遇到过如此巨大的延迟并且知道如何避免它?
我试过了
- 更改 SignalR 的传输协议
- window.onbeforeunload 解决方法
- 不同的 jQuery 版本
- 还有 1000 件我已经不记得的东西
非常感谢任何帮助,因为我 运行 没有想法。
这个问题是在使用 Orchard 时发布的。将 Orchard 更新到 1.10.1 后,超时消失了,SignalR 现在可以在 Chrome 中完美运行。
我在更新到 1.10.1 时检查了每个代码文件,发现 Owin 和会话内容发生了一些变化,所以我认为这是 Owin 或会话实现/处理的问题。