关键词不能为空

定时器对象标识符的使用(表示定时器的标识符)

作者:admin
来源:http://www.sdzsb8.cn/zsxx/20069.html
日期:2022-07-09 18:29
评论:0
阅读 94

定时器对象标识符的使用?表示定时器的标识符?

定时器对象标识符的使用(表示定时器的标识符)

最近,在小程序的开发中,setTimeout和setInterval函数经常被使用,而这两个函数的使用经常被混淆。我在这里专门研究了一下,做个总结,希望同行读了能有所收获,不再迷失。

首先需要注意的是,setTimeout和setInterval是两个实现定时调用的函数,而不是thread之类的线程。一般来说,线程可以在一个时间片内并发执行调用,但是这两个函数并不是这样使用的,因为我们都知道JavaScript是以单线程的方式在浏览器的JavaScript引擎中运行的。

setTimeout和setInterval的作用是在你设置的时间点,把你要执行的代码插入到JavaScript引擎维护的代码队列中。插入代码队列并不意味着您的代码会立即执行。理解这一点很重要。

一.超时

SetTimeout()只执行一次代码。如果您想多次调用它,请使用setInterval()或让代码本身再次调用setTimeout()。

上面的代码执行顺序是:先执行dosomething1的内容,然后运行到setTimeout的地方。setTimeout会告诉浏览器, 500ms 后会有一个要执行的代码插入到你的队列中,浏览器同意了(注意,插入代码并不代表立即执行)。setTimeout代码运行后,dosomething3的代码在它开始执行后立即执行。

问题来了。如果dosomething3的代码执行时间超过500ms,会有什么结果?500ms一到会执行dosomething2代码吗?事实可能会让你有点失望。在dosomething3的执行过程中(500ms后),dosomething2代码被插入到代码队列中,但是dosomething2的代码段直到funcName的方法执行结束才执行。从代码队列中很容易理解dosomething2代码在funcName后面,js在单线程中执行。如果是另一种情况,dosomething3代码的执行时间是500ms,SetTimeout在500ms后将dosomething3代码插入代码队列,而当时执行线程可能已经空闲,那么在500ms后,将dosomething2代码插入队列并立即执行,然后你感觉500 ms后,立即执行。

定时器超时后,记得清零:clearTimeout(timeoutId)这里的timeoutId是setTimeout返回的正整数,是定时器的唯一标识符。

第二,设置间隔

SetInterval可以作为setTimeout的升级版,就像setTimeout在循环中调用自己一样,用法和setTimeout一样。用完的时候记得用clearInterval清空定时器。

这里可能有两个问题3360

1.可以跳过该时间间隔。

2.时间间隔可能小于定期调用的代码的执行时间。

同时,当funcName开始执行时,执行dosomething1代码时,执行setInterval,200ms后,插入dosomething2代码,funcName代码平滑结束,dosomething2代码开始执行。如果dosomething2代码已经执行了比较长的时间,超过了下一个插入时间点400ms,那么在代码队列之后又插入了一个dosomething2代码,继续执行dosomething2,超过了插入时间点600ms,那么问题就来了。起初,我认为dosomething2代码的副本将继续被插入代码队列的后面.但实际情况是,由于代码队列中已经有一个未执行的dosomething2代码,600ms的插入时间会被‘无情’跳过,因为JavaScript引擎只允许一个未执行的dosomething2代码。惊讶不惊讶?

所以有更好的方法来实现这个功能。主要思想是递归:

这里有一个知识点:

arguments的主要用途是保存函数参数,带有被调用方属性,返回正在执行的函数对象,即指定函数对象的文本,有利于匿名函数的递归或者保证函数的封装。

但现在arguments.callee()已被弃用;

因为访问参数是一个非常昂贵的操作,因为它是一个非常大的对象,所以每次递归调用都需要重新创建,这影响了现代浏览器的性能,也影响了闭包。

三。setTimeout和setInterval之间的区别

setInterval执行一次代码后,会在给定的时间间隔后自动重复该代码,而setTimeout只执行该代码一次。

SetInterval和setTimeout都返回clearInterval和clearTimeout调用的计时器对象标识符。

SetTimeout用于延迟方法或函数的执行。

SetInterval一般用来刷新表单,对于一些假实时表单,指定刷新同步的时间。

现在你是不是觉得很简单,很好分辨?那么下面两个例子就很容易分辨出区别了。

示例1:

示例2:


本文来自网络,不代表「专升本要什么条件_专升本要几年_成人高考专升本_山东专升本信息网」立场,转载请注明出处:http://www.sdzsb8.cn/zsxx/20069.html

定时器对象标识符的使用(表示定时器的标识符)的相关文章

  • 发展对象培训证是什么意思「发展对象培训班已通过意味着什么」

    发展对象培训证是什么意思「发展对象培训班已通过意味着什么」:全市消防救援队伍党员发展对象培训班为进一步提高党员发展对象对党的基本理论、基本路线和基本知识的了解,严把发展党员“入口关”和“质量关”,6月6...01理论学习,思想洗礼本次

    政策
  • 艺术类院校排名(发展对象思想汇报)

    艺术类院校排名(发展对象思想汇报):1、艺术类院校排名:1、北京电影学院北京电影学院(Beijing Film Academy),位于北京市,是北京市人民政府、中华人民共和国国家广播电视总局和中华人民共和国教育部共建的艺术高校,

    问答
  • 2021广州农商银行校园招聘对象?(农商银行招聘信息)

    2021广州农商银行校园招聘对象?(农商银行招聘信息):1、1、国内全日制普通高校2020届未就业、2021届应届本科及以上学历毕业生;本科及以上学历海外留学生(2020年1月后毕业,且未参加工作的应届毕业生),专业不限(金融类、经管类、财会类

    热讯
  • (2020年专升本扩招)专升本选拔考试的对象及报考条件是什么?

    (2020年专升本扩招)专升本选拔考试的对象及报考条件是什么?:2020年专升本扩招?专升本选拔考试的对象及报考条件是什么??1.今年专科生招生规模扩大了吗? 答:为进一步畅通高等职业教育与普通高等教育的衔接渠道,落实《国家职业教育改革实

    热讯
  • excel实战技巧之对象合并(excel合并功能怎么用)

    excel实战技巧之对象合并(excel合并功能怎么用):excel实战技巧之对象合并?excel合并功能怎么用?前面在定义表单提交的时候我们用到了Object.assign()方法,这是ES6提供的对象合并方法。目前主流的chrome、safria、fir...

    问答
  • 遂宁市公开选拔名职业村党组织书记五类对象

    遂宁市公开选拔名职业村党组织书记五类对象:遂宁市公开选拔名职业村党组织书记五类对象?遂宁市职业村支书公告?人民网成都6月1日电 为优化村党组织书记队伍,加强和改进农村基层党组织建设,推动乡村组织振兴,四川省遂宁市

    问答
  • 智能对象属性大会发布新功能

    智能对象属性大会发布新功能:智能对象属性大会发布新功能?来源:环球网10月21日,Adobe在创意大会Adobe MAX上发布了全新一代Creative Cloud应用程序和服务,包含一系列由Adobe Sensei人工智能和机...

    问答
  • 江西省教育厅公布名中小学名校长培养对象名单,有你孩子学校的吗?

    江西省教育厅公布名中小学名校长培养对象名单,有你孩子学校的吗?:江西省教育厅公布名中小学名校长培养对象名单,有你孩子学校的吗??着力打造本土化未来教育家!参加省级各项培养培训活动,并将其纳入本地校长培养工程或计划,制定配套政策和

    热讯
  • 无锡市妇幼保健院委员会支持对象公布

    无锡市妇幼保健院委员会支持对象公布:无锡市妇幼保健院委员会支持对象公布?无锡市妇幼保健院住院部?好消息! 近日,无锡太湖人才计划2021年扶持对象名单正式公布。无锡市妇幼保健院灵活引进的徐志策教授,陈颖、郑、

    问答
网站公告