[英]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;
});
}
這不是最佳解決方案,但可以為您提供一些方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.