用JS写任务定时器的过程和代码是什么
Admin 2022-11-15 群英技术资讯 508 次浏览
功能介绍
定时器顾名思义就是在某个特定的时间去执行一些任务,现代的应用程序早已不是以前的那些由简单的增删改查拼凑而成的程序了,高复杂性早已是标配,而任务的定时调度与执行也是对程序的基本要求了。通过时间表达式来进行调度和执行的一类任务被称为定时任务,很多业务需求的实现都离不开定时任务。
在javascript中要实现定时任务也是很简单的,可以选择插件,也可以自己写一个简单的定时任务,这里就个给大家写一个简单的 setInterval() 循环定时任务。功能有,启动定时任务、停止定任务、添加定时任务、清除定时任务、执行定时器的方法。
实现调用演示
1.定义两个方法 有参和无参
function a1(value = "") { console.log("定时任务被调用了 携带的参数==>>", value) } function a2() { console.log("定时任务被调用了 我是无参数") }
2. 实现定时任务
let daily_time = { func: a1, parm: "我是每秒", year: "*", month: "*", date: "*", hours: "*", minutes: "*", seconds: "*" } let monthly_transaction = { func: a2, parm: null, year: "*", month: "*", date: "*", hours: "*", minutes: "1", seconds: "*" } let monthly_summary = { func: a1, parm: "我是每小时 1分 1秒", year: "*", month: "*", date: "*", hours: "*", minutes: "1", seconds: "1" } addTimer(daily_time) addTimer(monthly_transaction) addTimer(monthly_summary) startTimer()
创建定时任务js 代码文件 复制使用即可
bg-timer.js
// 缓存定时任务 // { // func 方法名 // parm 方法参数 // year 年 // month 月 // date 日 // hours 时 // minutes 分 // seconds 秒 // } // * 表示每刻都执行 数字 表示定时这个时间执行 /** * 每年 1月1日1时1分1秒 * year * * month 1 * date 1 * hours 1 * minutes 1 * seconds 1 */ /** * 每年每月每日每时1分每秒 * year * * month * * date * * hours * * minutes 1 * seconds * */ /** * 每秒 * year * * month * * date * * hours * * minutes * * seconds * */ var timer_list = [] var is_timer = null // 启动 function startTimer() { console.log("启动定时任务") if (!is_timer) { timeoutFunc() } } // 停止 function stopTimer() { console.log("停止定时任务") if (is_timer) { clearInterval(is_timer); is_timer = null } } // 清除定时任务 function cleanTimer() { stopTimer() timer_list = [] } // 添加定时任务 function addTimer(item = {}) { let n = { "func": item.func || null, "parm": item.parm || null, "year": item.year || "*", "month": item.month || "*", "date": item.date || "*", "hours": item.hours || "*", "minutes": item.minutes || "*", "seconds": item.seconds || "*" } timer_list.push(n) } function timeoutFunc() { if (is_timer) { return } is_timer = setInterval(function() { let da = new Date() let fullYear = (da.getFullYear()).toString() let month = (da.getMonth()).toString() let dat = (da.getDate()).toString() let hours = (da.getHours()).toString() let minutes = (da.getMinutes()).toString() let seconds = (da.getSeconds()).toString() // console.log("定时......",timer_list) // console.log("年:", fullYear) // console.log("月:", month) // console.log("日:", dat) // console.log("时:", hours) // console.log("分:", minutes) // console.log("秒:", seconds) for (let i in timer_list) { let item = timer_list[i] if (item.year != "*" && item.year != fullYear) { continue } if (item.month != "*" && item.month != month) { continue } if (item.date != "*" && item.date != dat) { continue } if (item.hours != "*" && item.hours != hours) { continue } if (item.minutes != "*" && item.minutes != minutes) { continue } if (item.seconds != "*" && item.seconds != seconds) { continue } console.log("调用定时任务", item) if (item.func && item.parm) { item.func(item.parm) } else { item.func() } } }, 1000) }
到此,关于“用JS写任务定时器的过程和代码是什么”的学习就结束了,希望能够解决大家的疑惑,另外大家动手实践也很重要,对大家加深理解和学习很有帮助。如果想要学习更多的相关知识,欢迎关注群英网络,小编每天都会给大家分享实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
关于JavaScript命名约定下文有详细的介绍,小编觉得挺实用的,对大家学习或工作或许有帮助,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Rxjs中处理和抓取错误是怎样的?在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
eval是全局对象的一个函数属性,用于计算某个字符串,并执行其中的JavaScript代码。函数语法是eval(string)。参数string表示要计算的字符串。
TypeScript中怎么写函数重载?下面本篇文章给大家介绍一下TypeScript中函数重载写法,希望对大家有所帮助!
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008