电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

VUE中setTimeout和setInterval自動銷毀案例

瀏覽:98日期:2022-11-27 17:45:22

在Vue的大型單頁應用中,在某個路由下,經常會出現需要延遲執行(setTimeout)或者間隔之心(setInterval)的函數,但是每次在頁面destroy之前,都必須手動清理掉。

正常代碼如下:

beforeDestroy() { this._timer && clearTimeout(this._timer);}

但是如果一不小心,就會忘記,會造成意想不到的情況,那么有什么辦法能避免這種情況嗎?

當然有,那就是重新寫一個setTimeout的方法(或者干脆劫持window.setTimeout)。

var _pageTimer = []; Vue.prototype.setTimeout = (fn, time) => { let handler = window.setTimeout(fn, time); _pageTimer.push(handler); return handler;}

在路由層面,當每次頁面變更時,執行清理工作:

router.beforeEach((to, from, next) => { _pageTimer.map(handler => { window.clearTimeout(handler); }) })

再頁面使用時,調用Vue的setTimeout,這樣是不是方便多了呢? setInterval也是一樣的。

該方法還適用于對于頁面異步請求的ajax處理,可以通過獲取ajax的handler,在切面切換時,調用handler.abort() 取消請求,避免對服務器資源的不必要的壓力。

補充知識:在vue中使用 setTimeout ,退出頁面后,計時器沒有銷毀

問題:頁面在使用 setTimeout 定時循環某方法,或者在兩個頁面之間跳轉時間小于定時器的時間間隔時,定時器還在運行。

原因:當我們刷新頁面時,會將當前頁面之前創建的 setTimeout 以及其他定時器都清除掉,但是僅僅是路由切換是不會清除的。

data (){ return{ clearTime: ’’ }},mounted () { randomGet () { // 在 1分鐘到 2分鐘之間 不定時執行 var r = Math.random() * (2 - 1) + 1 var t = Math.ceil(r * 60000) // console.log(t) this.clearTime = setTimeout(() => { this.submit() this.randomGet() }, t) }, submit () { console.log(’aaaa’) }},destroyed () { clearTimeout(this.clearTime) // 清除}

以上這篇VUE中setTimeout和setInterval自動銷毀案例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: 二手色谱仪器,十万分之一分析天平,蒸发光检测器,电位滴定仪-湖北捷岛科学仪器有限公司 | 硫化罐-胶管硫化罐-山东鑫泰鑫智能装备有限公司 | 硫化罐-胶管硫化罐-山东鑫泰鑫智能装备有限公司 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 防水接头-电缆防水接头-金属-电缆密封接头-不锈钢电缆接头 | 冷轧机|两肋冷轧机|扁钢冷轧机|倒立式拉丝机|钢筋拔丝机|收线机-巩义市华瑞重工机械制造有限公司 | 顺景erp系统_erp软件_erp软件系统_企业erp管理系统-广东顺景软件科技有限公司 | POS机办理_个人POS机免费领取 - 银联POS机申请首页 | 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | 硬齿面减速机_厂家-山东安吉富传动设备股份有限公司 | 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | 电动高压冲洗车_价格-江苏速利达机车有限公司| 安徽华耐泵阀有限公司-官方网站| 南京蜂窝纸箱_南京木托盘_南京纸托盘-南京博恒包装有限公司 | 上海深蓝_缠绕机_缠膜机-上海深蓝机械装备有限公司 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 传爱自考网_传爱自学考试网 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 防火卷帘门价格-聊城一维工贸特级防火卷帘门厂家▲ | 带式压滤机_污泥压滤机_污泥脱水机_带式过滤机_带式压滤机厂家-河南恒磊环保设备有限公司 | 智能监控-安防监控-监控系统安装-弱电工程公司_成都万全电子 | 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | 箱式破碎机_移动方箱式破碎机/价格/厂家_【华盛铭重工】 | 承插管件_不锈钢承插管件_锻钢高压管件-温州科正阀门管件有限公司 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 上海噪音治理公司-专业隔音降噪公司-中广通环保 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 篷房[仓储-婚庆-展览-活动]生产厂家-江苏正德装配式帐篷有限公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 水轮机密封网 | 水轮机密封产品研发生产厂家 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 气动隔膜阀_气动隔膜阀厂家_卫生级隔膜阀价格_浙江浙控阀门有限公司 | 合肥抖音SEO网站优化-网站建设-网络推广营销公司-百度爱采购-安徽企匠科技 | 河南新乡德诚生产厂家主营震动筛,振动筛设备,筛机,塑料震动筛选机 | 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 |