手机版

设置和清除角度定时任务的示例

时间:2021-09-04 来源:互联网 编辑:宝哥软件园 浏览:

似乎人们经常把AngularJS中的$timeOut() $interval()函数看作是一个不需要关注的内置函数。但是如果忘记了$timeOut()$interval()的回调函数会造成非常不好的影响,可能会遇到一些奇怪的情况,比如莫名其妙的代码问题,或者无缘无故抛出一个错误,甚至会一遍又一遍的向你的服务器发出$http请求。管理$ TiME/$ interval计时器的技巧是在$ destroy事件中取消它们。

与JavaScript中最初的setTimeout()和setInterval()函数不同,AngularJS中的$timeOut()函数返回一个承诺。像其他承诺一样,您可以绑定time的已解决和已拒绝时间。然而,更重要的是,您可以通过将此承诺传递给$ timeOut.cancel()方法来取消潜在的计时器。

设置计划的任务,并给它一个名称,time_upd,以便在清理时直接调用该名称。

var time out _ upd=$ interval($ scope . upd _ data,6000);注意:$设置时的间隔(fn,time);第一个参数fn不能写“()”,只能写$scope。方法名。第二个参数是定期执行的时间间隔,单位是毫秒。

清除计划任务,AngularJS将在范围内触发$ destroy事件。这给了我们取消任何潜在计时器的机会。

$scope。$on('$destroy ',function(){ $ interval . cancel(time out _ upd);})我的页面就是这种格式,如下图所示。Angularjs在“实时数据监控”模块中设置了一个计划任务。当我点击菜单栏转到其他页面时,默认的计划任务仍在执行,这占用了大量资源。因此,必须清除此计划任务,并且必须清除原始window . clear interval(time out _ upd);它不起作用,所以您必须使用angularjs的清洗方法,如上面的代码所示。

注意:在angularjs中设置调度任务后,必须清除,否则angularjs在离开控制器后仍会执行调度任务。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:设置和清除角度定时任务的示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。