javascript - 使用 $interval 在 AngularJS 中每秒触发一个 AJAX 请求

标签 javascript html angularjs setinterval

间隔函数在我单击的最后一个元素中不断循环。我想要发生的是在我单击一个新元素时取消最后一个间隔,并在我单击它时重新开始。我点击了 ng-repeat 中的每一项。

这是我的代码。

$scope.onClickTab= function(x,tkid, sid, $event){
      var vtpostdata = 'TokenId=' + tkid +
                                ',SessionId=' + sid +
                                ',ChatMessageCount=' + 0 +
                                ',retrytimes=' + 10 +
                                ',delayms=' + 100;
  $interval(function() {
      $http.jsonp(ServiceDomainSite + 'myApi' + vtpostdata + '?callback=JSON_CALLBACK&t=' 
                                    + new Date().getTime())
            .success(function (data) {
              var resultObject = angular.fromJson(data.Rows);
              $scope.Chats = resultObject;    
            });
  }, 1000);
};

最佳答案

$interval.cancel() 很好用。我还删除了 var vtpostdata,因为在您再次请求 $http 之前,它不会在代码中使用。所以此时不​​需要创建var。另请查看 AngularJS $interval 的文档了解有关 $interval 处理的更多信息。

var myInterval = null;

$scope.onClickTab = function(x,tkid, sid, $event){

    //cancel current interval
    if (myInterval !== null) {
        $interval.cancel(myInterval);
    }

    myInterval = $interval(function() {
        $http.jsonp(ServiceDomainSite + 'myApiTokenId=' + tkid +
        ',SessionId=' + sid +
        ',ChatMessageCount=' + 0 +
        ',retrytimes=' + 10 +
        ',delayms=' + 100 + '?callback=JSON_CALLBACK&t='
        + new Date().getTime()).success(function (data) {
            var resultObject = angular.fromJson(data.Rows);
            $scope.Chats = resultObject;
        });
    }, 1000);
};

关于javascript - 使用 $interval 在 AngularJS 中每秒触发一个 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558513/

相关文章:

php - 跨多个网页播放媒体

javascript - 使用 javaScript 而非 jquery 的多个切换

jquery - 交替选择列表选项颜色

html - 怪癖模式合法吗?

javascript - jQuery 在另一个 HTML 元素中生成 HTML 元素

javascript - 当表单可见时如何提交按钮

angularjs - Windows 中的 npm install -g generator-X 错误

javascript - 三元运算符在 react js 渲染函数中不起作用

javascript - 如何传递子文档数组字段值

javascript - AMP 脚本警告验证器