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

发布时间 - 2026-01-11 01:38:43    点击率:

人们似乎常常将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后,仍然会执行这个定时任务。

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


# angularjs  # 定时任务  # angularjs2  # 定时器  # angularjs清除定时器  # AngularJs定时器$interval 和 $timeout详解  # Angular.js中定时器循环的3种方法总结  # AngularJS定时器的使用与移除操作方法【interval与timeout】  # Angularjs 双向绑定时字符串的转换成数字类型的问题  # 详解Angular.js数据绑定时自动转义html标签及内容  # AngularJS实现页面定时刷新  # angular2倒计时组件使用详解  # ionic+AngularJs实现获取验证码倒计时按钮  # AngularJS 支付倒计时功能实现思路  # Angular实现的简单定时器功能示例  # 你可以  # 会在  # 一遍  # 所示  # 的是  # 是一个  # 如果你  # 还在  # 第一个  # 将会  # 其他的  # 当我  # 我们可以  # 第二个  # 更重要  # 自带  # 会来  # 这让  # 方法来  # 绑定 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android利用动画实现背景逐渐变暗  如何快速生成凡客建站的专业级图册?  Bootstrap整体框架之JavaScript插件架构  Laravel如何使用模型观察者?(Observer代码示例)  如何快速搭建高效可靠的建站解决方案?  Laravel Fortify是什么,和Jetstream有什么关系  简单实现jsp分页  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何在橙子建站中快速调整背景颜色?  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何快速完成中国万网建站详细流程?  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  如何彻底卸载建站之星软件?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  微信小程序 配置文件详细介绍  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  如何在万网自助建站平台快速创建网站?  Laravel distinct去重查询_Laravel Eloquent去重方法  网站优化排名时,需要考虑哪些问题呢?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  大型企业网站制作流程,做网站需要注册公司吗?  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  大连网站制作公司哪家好一点,大连买房网站哪个好?  javascript中闭包概念与用法深入理解  制作企业网站建设方案,怎样建设一个公司网站?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  零服务器AI建站解决方案:快速部署与云端平台低成本实践  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  Laravel观察者模式如何使用_Laravel Model Observer配置  EditPlus中的正则表达式实战(6)  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  PHP 500报错的快速解决方法  使用Dockerfile构建java web环境  教你用AI润色文章,让你的文字表达更专业  三星网站视频制作教程下载,三星w23网页如何全屏?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  动图在线制作网站有哪些,滑动动图图集怎么做?  焦点电影公司作品,电影焦点结局是什么?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  JavaScript中的标签模板是什么_它如何扩展字符串功能