由于javascript 的 setTimeout 会因为事件循环问题导致不精准,有偏差

这里实现了一个精准的定时执行函数

原理:

每隔时间的一半,重新设置定时器,时间继续切分一半,相当于重新校准偏差

等时间达到1秒(根据业务服务器资源自行调控,时间越长越耗费性能)以内,死循环检测时间

           function dealTimerTask(callback,time){let dec = time - Date.now()if(dec>1000){console.log(`离到时间还有${dec}ms`)setTimeout(dealTimerTask.bind(this,callback,time),Math.ceil(dec/2))}else{console.log(`倒计时还有1S,死循环检测`)while(time-Date.now()>0){// 死循环等待}let myTime = Date.now()callback()// console.log(callback)console.log(`倒计时结束,检测时间${myTime} ${Date.now()}`)}}dealTimerTask(()=>{console.log(`测试${Date.now()}`)},1619765640000)

javascript实现毫秒级精准定时执行函数相关推荐

  1. python定时执行函数_python定时执行详解

    知识点 1. sched模块,准确的说,它是一个调度(延时处理机制),每次想要定时执行某任务都必须写入一个调度. (1)生成调度器: s = sched.scheduler(time.time,tim ...

  2. php计划任务(定时执行函数)

    <?phpignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限 ...

  3. tkinter 定时执行函数

    用snap7做上位,发现默认是在mainloop循环中使用command事件作为中断,对于需要连续监视的变量,这很明显是不符合要求的. 查了很多资料发现tkinter有一个after的类方法,可以实现 ...

  4. python定时执行函数

    目前在做的一个项目所读取的文件可能偶尔会有改动,但是我的代码在文件发生改动时只能重新跑才可以读取更新的文件.但是实时扫描又很费时间,因为文件的改动并不频繁. 所以我加了一个定时器,设定每天12点的时候 ...

  5. C语言写一个10毫秒的延迟,C语言实现毫秒级定时

    由于手机电视项目接收数据出现问题(每帧数据后半部分有丢失,并且每隔一帧就会有几帧丢失),无法在手机上正常播放,原因很可能与SPI接口的速率(与接口驱动相关)与硬件速率不匹配造成的.为此,需要测量接收每 ...

  6. 毫秒级精度计划任务管理、系统运维管理、定时执行任务、定时任务执行、任务定时执行软件 —— 定时执行专家

    目录 一.使用教程 1.软件下载 2.软件的安装方法 3.软件第一次运行,选择界面语言 4.设置软件开机启动,自动运行.自动隐藏(自动隐身运行) 二.软件简介 1.支持 23 种任务类型 2.支持 1 ...

  7. Python基础篇:某宝一键秒杀,毫秒级的精准度

    某宝秒杀,用毫秒级的精准度来抢购! 前言 还记得前段时间情人节,各种产品活动秒杀.结果有对象的辣条自然少不了被对象一番折磨 (注意:不是new出来的哈,也不是橡胶的,实实在在的女朋友) 于是乎彻底激发 ...

  8. 昼猫笔记 JavaScript -- 异步执行 | 定时器真的定时执行?

      本篇主要内容:异步.定时器引发的思考 预计阅读时间:8分钟 了解 我们都知道在js中定时器有两种  setInterval()  . setTimeout()   setInterval() :按 ...

  9. JavaScript 自执行函数剖析

    回想一下,我们平时写的一些具名函数(也就是区别于匿名函数的函数),如下面一个例子: 1 function sayHello(){ 2 console.log("hello,我是林丽君&quo ...

最新文章

  1. 生物信息学 Python 入门之源码安装
  2. 基于WebSocket协议的iOS端即时聊天
  3. Sharepoint 2010配置form认证方式(SQL账号)
  4. WordPress 自定义插件初始化及卸载
  5. 【PAT - 甲级 - 1018】Public Bike Management (带权最短路,多条最短路中加条件,DFS)
  6. 11张图步步演进:你一定能看懂的【分布式系统】容错架构设计!
  7. c语言case两个变量的组合,我可以使用带有两个变量的case/switch语句吗?
  8. VB实现可执行文件运行时自删除
  9. 如何安装pygame模块
  10. Contexts使用以及详细配置
  11. 二维码扫一扫java开发
  12. 硬件电路设计基础知识
  13. List总结(LinkedList, ArrayList等使用场景和性能分析) [From skywang12345 ]
  14. python用蓝牙发文件_android-Python蓝牙如何将文件发送到手机
  15. OracleERP表结构--PO模块(1)
  16. 【目标跟踪】|Exemplar Transformers
  17. 修改nginx web服务器默认目录结构,Nginx更改Web根目录导致403 Forbidden
  18. C++中definition与declaration的区别
  19. 三种前端实现VR全景看房的方案,收藏吧说不定哪天就用得上
  20. Jquery简单实现2048小游戏

热门文章

  1. 北京大学计算机考研难考吗,北京大学考研难吗?一般要什么水平才可以进入?...
  2. 数据爬取存入MySQL数据库
  3. cue cd曲目怎么提取_音乐CD是否包含其中的曲目所需的元数据?
  4. Pycharm一直卡在connecting to console的解决办法
  5. wx.TextCtrl设置字体颜色
  6. 世界无烟日的宣传语以及世界无烟日主题活动策划适用的公益海报
  7. HMS的舞者们,在智能世界的舞台
  8. Linux中出现libc.so.6(GLIBC_2.14)(64bit) is needed by...的解决办法
  9. table标签的使用技巧
  10. C. Serval and Toxel‘s Arrays(数学贡献法)