2015-02-24 23 views
1

我想弄清楚SignalR客戶端是否有任何掛起的請求,以便我可以顯示一個「加載」指示符,直到處理完所有請求。下面是我在做什麼目前:如何確定在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客戶端是忙於處理請求還是閒置。有任何想法嗎?

回答

0

我不知道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; 
    }); 
} 

這不是一個最好的解決方案,但可能會給你一些approach.Thanks。

相關問題