2016-02-19 100 views
0

如果存在新的插入數據,我已經使用Ajax爲div獲取數據,但這會導致服務器在大約10秒內崩潰。如何在不使用它的情況下每秒鐘刷新div來使用這麼多的資源。使用AJAX每秒更新div數據

下面是完整功能的代碼,但它似乎仍然給錯誤

function checkForMessages(friends_id, id) { 


$.ajax({ 
    url: "../fetch_chat.php", 
    type: "POST", 
    data: "current_user="+friends_id+"&friends_id="+id, 
    success: function(data) { 
     $('#chatContainer').html(data); 
     var div = document.getElementById('chat_post_container'); 
     div.scrollTop = div.scrollHeight; 


    }, 
    complete: function(data){ 

     checkForMessages(friends_id, id); 
    }, 
    error: function() { 
     alert('ERROR'); 
    } 
}); 


} 
+0

這是一個廣泛的主題的各種技術,如長池和推。但是我認爲如果你的服務器每秒鐘可以支持1個請求,那麼你真的應該改變服務器。你能發佈更多細節嗎? – 4rlekin

+0

你應該在'asp.net'的情況下使用'signalr'來使用push技術,所以每當新數據到達時,只有div被更新。每秒重複更新相同的數據將會消耗您的資源。 – Hemal

回答

0

嘗試檢查最後的請求是否完成,再經過1秒的呼叫下一個Ajax請求。 這將平衡服務器上的負載。 如果可能刷新使用signalR。

或者 您可以使用設置間隔 如

setInterval(function(){ 
//code goes here that will be run every 5 seconds. }, 5000); 
+0

如何檢查上次請求是否完成? –