c# - SignalR 阻止 chrome UI?

标签 c# javascript jquery signalr

我在使用 SignalR 时遇到问题,目前还不明白原因。 我编写了一个用于长订单处理操作的中心,并注意到它在 FireFox 中更新进度正常,但在 Chrome 中出现问题。 因此,我编写了简单的测试中心来检查发生了什么:

public class SimpleHub: Hub
{
    public void LongProcess()
    {
        System.Threading.Thread.Sleep(2000);            
        Clients.Caller.AddProgress("Step 1 of 5 has completed.");
        System.Threading.Thread.Sleep(2000);
        Clients.Caller.AddProgress("Step 2 of 5 has completed.");
        System.Threading.Thread.Sleep(3000);
        Clients.Caller.AddProgress("Step 3  of 5 has completed.");
        System.Threading.Thread.Sleep(1000);
        Clients.Caller.AddProgress("Step 4 of 5 has completed.");
        System.Threading.Thread.Sleep(4000);
        Clients.Caller.AddProgress("Step 5 of 5 has completed.", true);
    }
}

它的作用是每隔几秒增加一次进度。它在两个浏览器中的干净项目中都按预期工作 - 每隔几秒就会在浏览器中出现新的进度消息。
但是当我在实际项目中尝试它时,使用 Firefox 它工作正常,但在 Chrome 中它看起来完全阻止了 UI(甚至不重新绘制 Chrome 控制台),并且只有当 LongProcess 完成时,它才会添加所有进度消息。
所以问题是,这可能是什么原因造成的——可能是一些 jQuery 设置?有什么想法要检查什么吗? 顺便说一句,我尝试过 longPollingserverSendEvents (这是由 Chrome 中的 signalR 自动选择的),两者的结果相同。

更新:添加客户端代码:

var hub = $.connection.SimpleHub;

hub.client.AddProgress = function (progress) {
   $("#placeOrderProgress").append('<li><span>' + progress + '</span><i></i></li>');
};              

$.connection.hub
            .start()
            .done(function () {                    
                      hub.server.longProcess($('#checkoutForm').toJSON());
                 });

最佳答案

找到了答案。
我们在几个地方使用了 jQuery 远程验证这段代码(以避免竞争条件):

$.ajaxSetup({ async : false });

所以当我删除它时,SignalR 开始在 Chrome 上正常工作。有趣的是,在 FireFox 上它没有任何影响 - 无论有或没有这行代码它都可以工作。

关于c# - SignalR 阻止 chrome UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13822160/

相关文章:

c# - 生成和保存 ZedGraph 图而不显示在表单上

c# - 更改 Foreach 订单?

javascript - 使用 Javascript 阻止 Android 后退按钮

javascript - Jquery 数据表未根据下拉条目显示正确的行数

jquery - select2 下拉菜单重叠在 remodal

javascript - 如何在html或js中为博客添加 'Load More..'选项?

c# - Xamarin Forms PCL 中的 LoadApplication 错误

c# - 我的一张表没有显示在模型图中 EF5.0 VS 2013 Community

javascript - 需要帮助将更多照片添加到我的视差网站

javascript - useNavigate() 未重定向到 '/protected'