JQuery 3 和 SignalR 2.2.0

标签 jquery asp.net-mvc signalr

我在 MVC5 项目中使用 SignalR 2.2.0。 SignalR 在客户端依赖于 JQuery。

JQuery 最近发布了新版本,我从 Nuget 更新了它,特别是从版本 2.2.4 更新到 3.0.0.1,但随后 SignalR 停止工作。 JavaScript 中的启动命令“$.connection.hub”失败。 经过很长时间的绞尽脑汁,我将 JQuery 降级到 2.2.4,一切又恢复正常了。

我是唯一遇到这个问题的人吗?有什么解决办法吗?

谢谢。

最佳答案

您必须自己编辑signalR代码,在jquery 3中,他们删除了加载事件的快捷方式:

Breaking change: .load(), .unload(), and .error() removed

These methods are shortcuts for event operations, but had several API limitations. The event .load() method conflicted with the ajax .load() method. The .error() method could not be used with window.onerror because of the way the DOM method is defined. If you need to attach events by these names, use the .on() method, e.g. change $("img").load(fn) to $(img).on("load", fn).

https://jquery.com/upgrade-guide/3.0/

所以在文件 jquery.signalR-{version}.js 中:

您必须更新此行:

_pageWindow.load(function () { _pageLoaded = true; });

致:

_pageWindow.on("load",function () { _pageLoaded = true; });

关于JQuery 3 和 SignalR 2.2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37952332/

相关文章:

javascript - 在 Chrome 中检测设备模拟模式何时打开或关闭

javascript - jQuery 正则表达式替换返回替换单词

c# - MVC 模型绑定(bind)与动态集合

asp.net-mvc - 您如何将 Websharper 与现有的 ASP.NET MVC 项目集成?

具有 Websocket 和 AD 身份验证的 Azure 应用服务

javascript - 如何将相同的 javascript/jquery 应用于其他输入行

javascript - jQuery 粘性顶部菜单栏请求

c# - 无法在 cshtml 中使用内插字符串

UWP 应用与 Windows 服务的通信

c# - 我应该使用什么形式的任务控制来使用 SignalR 处理 MVC 中长时间运行的进程