当前位置:首页 > 日记 > 正文

angularjs定时任务的设置与清除示例

angularjs定时任务的设置与清除示例

人们似乎常常将AngularJS中的$timeOut()  $interval()函数看做是一个内置的、无须在意的函数。但是,如果你忘记了$timeOut()$interval()的回调函数将会造成非常不好的影响,你可能会因此遇到代码莫名其妙的出现问题,或者无端抛出一个错误甚至是一遍一遍的重复对的你的服务器进行$http请求这些诡异的情形。管理好你的$timeOut/$interval定时器的小技巧就是在$destory事件中将它们取消。

和JavaScript中原生的setTimeout()以及setInterval()函数不同,AngularJS中的$timeOut()函数会返回一个promise。和其他的promise一样,你可以绑定$timeOut的resolved和rejected时间。然而更重要的是,你可以通过将这个promise传递给$timeOut.cancel()方法来取消掉潜在的定时器。

设置定时任务,给定时任务起一个名字time_upd,为的是方便清理的时候直接调用名称。

var timeout_upd = $interval($scope.upd_data ,6000); 

注意:设置的时候$interval(fn ,time);第一个参数fn 不能写“()”,只能写$scope.方法名称。第二个参数是定时执行的时间间隔,单位为毫秒。

清除定时任务,AngularJS将会在scope中触发$destory事件。这让我们可以有机会来cancel任何潜在的定时器。

$scope.$on('$destroy',function(){     $interval.cancel(timeout_upd);   }) 

我的页面是这种格式的,如下图所示。angularjs在“实时数据监测”这个模块设置了一个定时任务,当我点击菜单栏到别的页面时,默认的这个定时任务还在执行,占用很多资源。所以必须得清除这个定时任务,原生的清除window.clearInterval(timeout_upd);是不管用的,必须用angularjs自带的清除方法,如上代码所示。

注意:angularjs中设置了定时任务之后,必须清除定时任务,不然angularjs会在离开这个controller后,仍然会执行这个定时任务。

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

相关文章

INdesign CS6怎么制作渐变色? ID渐

INdesign CS6怎么制作渐变色? ID渐

图形,渐变,渐变色,制作方法,电脑软件,INdesign中想要制作一个渐变的图形,该怎么制作渐变色呢?下面我们就来看看详细的教程。软件名称:Adobe InDesign CS6 中文免费版软件大小:878.42MB更新时间:2014-05-261、打开一个ID文档,现在我要在这个文档添…

怎么在excel2013中对多个数据进行

怎么在excel2013中对多个数据进行

数据,方法,多个,中对,电脑软件,  Excel作为办公人员常用的软件之一,获得了世界范围的推广和使用。Excel软件依靠其强大的功能,成为一款快速、有效处理函数和公式的优秀软件,下面小编就教你怎么在excel2013中对多个数据进行汇总。希望对你…

JS中Safari浏览器中的Date

JS中Safari浏览器中的Date

浏览,器中,电脑软件,JS,Safari,在js中处理Date时,发现Safari和其他浏览器的支持方式不一致1.例如:2017-01-01 12:00:00在其他浏览器中,使用这个格式的字符串进行new Date操作没有问题,但是在Safari中会提示Invalid Date;Safari中不支持'-…

ppt怎么复制幻灯片不保留原格式

ppt怎么复制幻灯片不保留原格式

文本,格式,幻灯片,技巧,电脑软件,  在网上复制的文本经常会带有格式,一般文本都自带格式有时候不一定能用上,那么如何在ppt里如何粘贴无格式的文本呢?下面给大家分享ppt复制无格式文本的技巧,希望看完本教程的朋友都能学会并运用起来。ppt复…

ps双曲线磨皮教程:保留皮肤质感磨

ps双曲线磨皮教程:保留皮肤质感磨

祛痘,教程,双曲线,质感,电脑软件,版权申明:本文原创作者“詹小哥的詹”,感谢“詹小哥的詹”的原创经验分享!ps双曲线磨皮教程:保留美女人像皮肤质感磨皮并祛斑祛痘,我们都知道PS磨皮的方法多种多样,但是在商业修片当中,首选…

PPT2010怎么设置艺术字位置

PPT2010怎么设置艺术字位置

位置,设置,方法,艺术字,电脑软件,  文字在PPT制作中不可或缺的要素,你可能会认为字体设置很简单,但小编要告诉你这里面有很大学问。文字的字体、大小、排列都影响着PPT的制作,然而字体太多,你需要掌握几种字体来适应不同的ppt。下面小编就与…

Photoshop创意合成在空中飞行的旅

Photoshop创意合成在空中飞行的旅

创意,航班,海报,在空中,电脑软件,这篇教程是向的朋友分享Photoshop创意合成在空中飞行的旅游航班海报方法,教程合成出来的海报非常漂亮,教程介绍的很详细,推荐过来,一起来看看吧!12 阅读全文教程结束,以上Photoshop创意合成在空中飞行的旅游航班…

详述 Sublime Text 打开 GBK 格式

详述 Sublime Text 打开 GBK 格式

解决方法,中文乱码,格式,电脑软件,Sublime,Sublime Text 是一个代码编辑器,其具有漂亮的用户界面和强大的功能,例如代码缩略图,Python 的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python …

JS全角与半角转化实例 | 分享

JS全角与半角转化实例 | 分享

全角,分享,半角,实例,电脑软件,最近在做PC端网站的页面的一个表单校验,需要把全角输入转化成半角符号。之前没有了解过这些编码的知识,还是得Google一下查查资料,故简单总结一下。什么是全角、半角传统上,英语或拉丁字母语言使用的电脑系统,每一…

ps怎么设计果汁饮料杯图标?

ps怎么设计果汁饮料杯图标?

图标,果汁,电脑软件,ps,想要绘制一杯甜甜的饮品图标,该怎么绘制呢?我们可以使用ps中的绘图工具绘制,下面我们就来看看详细的教程。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、先用圆形工具绘制一个…

利用原生JS与jQuery实现数字线性变

利用原生JS与jQuery实现数字线性变

线性,数字,原生,动画,电脑软件,前言大家应该都有所体会,在一些数据展示的专题页里,有时候希望数字能动态从某一个数变化到另一个数,以此来吸引用户眼球,突出数据。于是有了下文。在这里,我用了两种方式:一种是原生的JavaScript,另一种是jQuery插件…

jQuery dateRangePicker插件使用方

jQuery dateRangePicker插件使用方

插件,使用方法,详解,电脑软件,jQuery,jQuery dateRangePicker插件使用总结。版本说明:当前使用版本:2.1.25特别说明:版本不同,部分api可能会发生变化,需要引起重点关注效果图关键代码片段$("#dateTimeRange span").html(moment().subtract(1, …