Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Signalr 信号器从javascript客户端连接速度慢_Signalr - Fatal编程技术网

Signalr 信号器从javascript客户端连接速度慢

Signalr 信号器从javascript客户端连接速度慢,signalr,Signalr,有时从浏览器连接到我的SignalR服务器需要一秒钟或更长时间,即使在本地运行时也是如此。我还以为WebSocket的速度太快了呢 有一个配置选项,告诉SignalR JS client在发送任何内容之前等待页面load事件完成 只需在启动选项中设置waitForPageLoad:false,即可防止这种情况发生。当然,如果页面未加载,则必须确保回调中所做的任何操作都可以安全执行 任何像YouTube视频没有加载的事情都会延迟启动-所以我不确定为什么它没有更好/更广泛的记录 $.connecti

有时从浏览器连接到我的SignalR服务器需要一秒钟或更长时间,即使在本地运行时也是如此。我还以为WebSocket的速度太快了呢

有一个配置选项,告诉SignalR JS client在发送任何内容之前等待页面
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();
        }