Signalr 信号器从javascript客户端连接速度慢
有时从浏览器连接到我的SignalR服务器需要一秒钟或更长时间,即使在本地运行时也是如此。我还以为WebSocket的速度太快了呢 有一个配置选项,告诉SignalR JS client在发送任何内容之前等待页面Signalr 信号器从javascript客户端连接速度慢,signalr,Signalr,有时从浏览器连接到我的SignalR服务器需要一秒钟或更长时间,即使在本地运行时也是如此。我还以为WebSocket的速度太快了呢 有一个配置选项,告诉SignalR JS client在发送任何内容之前等待页面load事件完成 只需在启动选项中设置waitForPageLoad:false,即可防止这种情况发生。当然,如果页面未加载,则必须确保回调中所做的任何操作都可以安全执行 任何像YouTube视频没有加载的事情都会延迟启动-所以我不确定为什么它没有更好/更广泛的记录 $.connecti
load
事件完成
只需在启动选项中设置waitForPageLoad:false
,即可防止这种情况发生。当然,如果页面未加载,则必须确保回调中所做的任何操作都可以安全执行
任何像YouTube视频没有加载的事情都会延迟启动-所以我不确定为什么它没有更好/更广泛的记录
$.connection.hub.start({ waitForPageLoad: false}).done(function() {
});
源代码摘录(我就是这样发现的):
另一种可能性是:注意没有其他东西会阻塞浏览器,例如长时间运行的初始化代码 我使用knockout.js,对于某些页面,它有一个特别长的初始化时间——阻塞浏览器并使其看起来像signar需要几秒钟,而实际上只需要几毫秒
// Check to see if start is being called prior to page load
// If waitForPageLoad is true we then want to re-direct function call to the window load event
if (!_pageLoaded && config.waitForPageLoad === true) {
connection._.deferredStartHandler = function () {
connection.start(options, callback);
};
_pageWindow.bind("load", connection._.deferredStartHandler);
return deferred.promise();
}