如何在angular js中使用setinterval每30秒刷新一次方法

克里希纳莫罕

我有下拉列表,在 ng-change 事件中调用 ajax 调用并显示一些数据,但我需要该方法每 30 秒执行一次。这样我就可以每 30 秒更新一次值我做了刷新机制,但有几个请求正在调用而不是 1。

第一次触发 1 次之后,它触发了较早的请求数的两倍,例如 1、2、4、8、16、32,64 次请求正在执行

选择被动红外设备

截屏 选择被动红外设备

 <th> <select class="form-control ng-pristine ng-valid ng-scope ng-empty ng-touched" ng-model="sel_val" ng-change="getPIRData(sel_val.deveui)" ng-options="data.deveui for data in Customers">Select PIR Device</select></th>

 var app = angular.module('PIR_Detection', []);
    app.controller('myCtrl', function ($scope, $http, $window) {
        $scope.sel_val = 0;
        $scope.DefaultLabel = "Loading.....";
        var post = $http({
            method: "get",
            url: "../data.json",
            dataType: 'json',
            data: {},
            headers: { "Content-Type": "application/json" }
        });
        post.success(function (data, status) {
            $scope.Customers = data;
        });
        post.error(function (data, status) {
        });

        $scope.getPIRData = function (id) {
            var url = "/PIRDetails/GetPIRStatus/" + id;

         setInterval(function () {
                        $scope.getPIRData(id);
                    }, 30000)     
            $http.get(url)
                .then(function (response) {
                    $scope.myWelcome = response.data;
                    $scope.pirstatus = base64toHEX($scope.myWelcome.dataFrame);
                    $scope.timestamp = getIST (response.data.timestamp);
                    $scope.rssi = response.data.rssi;

                });
        };

    });
阿门先生

这里的问题是您在响应过程中调用了 setInterval 函数。

每次处理您的请求时,您都会每 30 秒安排一次新的函数调度,而不是每 30 秒进行一次新的函数调用。

$scope.getPIRData = function (id) {
            var url = "/PIRDetails/GetPIRStatus/" + id;


            $http.get(url)
                .then(function (response) {
                    $scope.myWelcome = response.data;
                    $scope.pirstatus = base64toHEX($scope.myWelcome.dataFrame);
                    $scope.timestamp = getIST (response.data.timestamp);
                    $scope.rssi = response.data.rssi;

                });
        };
setInterval(function () {
                        $scope.getPIRData(id);
                    }, 30000)  

我从响应处理的范围中删除了 setInterval 调用。这现在应该可以工作了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何每隔X秒运行一次方法

Angular 6每X秒运行一次功能

如何在每台设备上同时每30秒调用一次函数?

如何在Angular 2中每10秒调用一次函数?

Angular 6-每10秒运行一次

如何使用可观察的方法每5秒刷新一次数据

每30秒如何观察到刷新一次?

如何遍历每10秒刷新一次的Web元素列表?

如何每2秒自动更新一次Chart.js?

如何使用c#asp.net MVC每10秒调用一次方法?

如何在父状态更新后仅在子组件中调用一次方法

我如何获得一个自定义的钩子以进行响应以首先加载,然后使用setInterval每4秒运行一次?

Python如何每30秒运行一次脚本,然后发送不一致的MSG

如何每x秒刷新一次UITableView的随机UITableViewCell。物镜

在PyGame中,如何在不使用睡眠功能的情况下每3秒移动一次图像?

如何制作每10秒刷新一次的jquery表?

如何每10秒钟自动刷新一次div并在单击按钮时停止?

如何使用sidekiq-scheduler每30秒进行一次调度

如何每30秒重复一次此JS函数的一部分?

如何每30秒自动选择一次下拉选项

我的实时供稿每30秒重新加载一次。播放视频时如何停止刷新?

如何在Android中每10秒刷新一次视频视图?

如何每 5 秒刷新一次线程内的 runOnUiThread?

从 springboot 后端到 angular4 前端每 30 秒更新一次图表值

如何调用一次方法而不是几次?

如何为变量放置随机值以及如何每 30 秒刷新一次该随机值?

WooCommerce 如何每 5 秒刷新一次購物車

如何讓mapView每5秒刷新一次或在跟踪用戶時實時刷新

如何在 Angular 12 中每 3 秒调用一次 http 服务?