2017-03-21 131 views
-3

我正试图在我的项目即聊天机器人上进行自动刷新。当聊天页面打开并加载对话时,我应定期刷新对话条目列表。 默认情况下,每5秒钟一次。5分钟后自动刷新

  1. 如果没有额外的对话条目刷新,我们应该增加等待时间5秒,最多120秒。
  2. 如果刷新时有其他对话条目,我们应该将等待时间重置为5秒。
+0

你有什么试过的?请向我们展示您的代码... – Ionut

+0

我正在做类似这样的事情,它不起作用

+1

不要在聊天系统中使用AJAX轮询。它基本上是DDOSing你自己的服务器。使用WebSockets。 –

回答

0

var delayTime = 5000;

function refresh() { 
     if(chatid.length > 0) { 
     ChatService.getChatDetailsById(chatid) 
      .then(function (result) { 
       if (result.Data.Messages.length > $scope.chatDetails.Messages.length) { 
        getChatDetails(chatid) 
        delayTime = 5000; 
       } else { 
        increseDelay(); 
       } 
       timeout(); 
      }); 
      function increseDelay() { 
       if (delayTime !== 120000) 
        delayTime += 5000; 
      } 
     } 
    } 
    function timeout() { 
     setTimeout(function() { 
      refresh(); 
     }, delayTime); 
    }; 
    timeout();