如何查明SignalR客户端上是否有挂起的请求
How to find out if there is a request pending on SignalR client?
我正试图弄清楚SignalR客户端上是否有任何挂起的请求,以便在处理完所有请求之前显示"正在加载"指示符。以下是我目前正在做的事情:
// some variable to hold whether there are pending requests
var isProcessing = false;
function ProcessSomeData(data)
{
isProcessing = true;
hub.server.setUserData(data).done(function () {
isProcessing = false;
});
}
然后我查看isProcessing
,看看是否所有请求都得到了处理。这是不准确的(有时当仍有请求在进行时,isProcessing
会被设置为false),所以我想知道是否有一种方法可以确定SignalR客户端是"忙于"处理请求还是只是空闲。有什么想法吗?
我不知道SignalR库中有任何其他解决方案,但我以前为这种行为做过一些变通方法。在从集线器发送真实数据之前,我先发送一条加载消息。代码如下:
public void Send(string message)
{
var username = Context.User.Identity.Name;
context.Clients.User(username).loadingMessages();
//-- Do you process here
context.Clients.User(username).yourMessage(message);
}
在javascript中,您应该创建loadingMessages实现:
// some variable to hold whether there are pending requests
var isProcessing = false;
$.connection.hub.client.loadingMessages = function(){
isProcessing = true;
//-- Some Dom manupulation may be
}
function ProcessSomeData(data)
{
hub.server.setUserData(data).done(function () {
isProcessing = false;
});
}
这不是一个最好的解决方案,但可能会给你一些方法。谢谢
相关文章:
- Chrome浏览器“;挂起”;同时在循环中执行AJAX请求
- 如何在AngularJS中取消挂起的请求
- IE 10 挂起 XMLHttpRequest 6 分钟,然后响应请求(使用 AngularJS 实现 CRSF)
- 如何查明SignalR客户端上是否有挂起的请求
- 中止Angular中挂起的http请求未中止
- 文件系统读取文件和 xml2js parseString 的挂起请求
- 在 AngularJS 中中止挂起的 ajax 请求
- 节点/快速挂起的请求
- 由挂起导致的 AWS Lambda 函数“进程在完成请求之前退出”
- 如何在javascript中获取所有挂起的http请求
- Node.js 方法不返回任何响应,挂起请求
- 通过 .scope().call() 从 JS 外部调用 Angular 服务会挂起请求
- cakehp3 img挂起请求,image没有't负载
- 事件发射器发射一次,请求挂起
- 使用纯javascript检索挂起的AJAX请求数
- 当通过Ajax发送请求时,如何停止挂起页面
- 如何停止所有活动或挂起的ajax请求
- 等待等效请求挂起
- 异步队列挂起请求
- 在开发工具上发布api端点挂起请求