位置: 编程技术 - 正文

详解javascript高级定时器(javascriptjs)

编辑:rootadmin

推荐整理分享详解javascript高级定时器(javascriptjs),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript+,javascript高级应用,javascript高阶,javascript 高级教程,javascript 高级教程,javascript高阶,javascript高阶,javascript高手,内容如对您有帮助,希望把文章链接给更多的朋友!

setTimeout()和setInterval()可以用来创建定时器,其基本的用法这里就不再做介绍了。这里主要介绍一下javascript的代码队列。在javascript中没有任何代码是立即执行的,一旦进程空闲则尽快执行。所以说定时器中设置的时间并不代表执行时间就一定相符,而是代表代码会在指定时间间隔后加入到队列中进行等待。如果在这个时间点上,队列中没有其他东西,那么这段代码就会被执行,表面上看上去好像代码就在精确指定的时间点上执行了。所以就会产生一些问题。

重复定时器

详解javascript高级定时器(javascriptjs)

通常,我们使用setInterval方法来以相同时间间隔重复执行某段代码。但是使用该方法会有两个问题:第一个就是某些间隔会被跳过;第二个就是多个定时器的代码执行之间的间隔可能会比预期的小。 在这里,我们来举个例子:如果某个onclick事件处理程序使用setInterval设置了一个ms间隔的重复定时器,如果事件处理程序花了ms的时间完成,就会跳过一个时间间隔同时运行着一个定时器代码。 我们也可以通过下面的代码来得到结论:

每次函数执行的时候都会创建一个新的定时器,第二个setTimeout调用使用了arguments.callee来获取对当前执行的函数的引用,并为其设置另外一个定时器。这样做是为了在前一个定时器代码执行完之前,不会向队列插入新的定时器代码,确保不会有任何缺失的间隔,也保证了在下一次定时器代码执行之前,至少要等待指定的间隔,避免了连续的运行。可谓一举两得,现在主流框架中的动画一般都是这样来实现重复定时的。

函数节流

定时器不仅仅是用来定时的,也可以用来缓解浏览器的压力。浏览器中某些计算和处理要比其他的昂贵很多,比如说DOM操作,就会需要更多的内存和CPU时间,连续使用过多的DOM操作可能会导致浏览器挂起,甚至崩溃。 函数节流的基本思想就是,某些代码不可以在没有间断的情况连续重复执行。第一次调用函数,创建一个定时器,在指定的时间间隔之后运行代码。当第二次调用该函数时,它会清除前一次的定时器并设置一个。目的就是为了在执行函数的请求停止一段时间后再执行。 代码如下:

这样给用户的感觉并不会很大,确是给浏览器减少了不少的压力,函数节流也是很多框架常用的技巧之一。

标签: javascriptjs

本文链接地址:https://www.jiuchutong.com/biancheng/385514.html 转载请保留说明!

上一篇:js实现文字垂直滚动和鼠标悬停效果(js水平垂直居中怎么设置)

下一篇:javascript图片延迟加载实现方法及思路(js设置图片大小)

  • 购买汽车的印花税要计入汽车原值吗
  • 税务迁移麻烦吗
  • 利润表中的所得税费用怎么填
  • 工程中常见的土方工程有哪些
  • 现金流量净额正负
  • 外地预交的附加税金在申报的时候怎么填
  • 员工补充医疗保险报销范围
  • 月末在产品的原材料定额费用计算公式
  • 资产重组的税务筹划
  • 高新企业职工教育经费扣除比例
  • 车间工人加班餐图片
  • 本季度盈利可以当季弥补以前亏损吗
  • 工资扣保险怎么做凭证
  • 投资收益涉及税种
  • 账本印花税计税金额或件数怎么申报2023
  • 企业间借款利息开票税目
  • 异地本行转账
  • 进项税额大于销项税额怎么办
  • 营业收入大于营业成本居然亏损
  • 购买法下购买成本包括
  • 2019年一般纳税人附加税减免政策
  • 企业转让土地使用权交什么税
  • 权益法核算的投资收益要做递延所得税吗
  • win11系统怎么删除账户
  • 溢价对外投资账务处理
  • vite config
  • php安装扩展fileinfo
  • 企业取得的搬迁补贴
  • 怎么用html做一个收藏夹
  • php如何实现
  • 差旅费车票抵扣的相关规定
  • 设备维修产生的人工费怎么开发票
  • 金银首饰以旧换新增值税处理
  • mkdir命令怎么用
  • btrfs 读取
  • 标书中组织结构是什么意思
  • 文化事业建设费税收优惠政策2023
  • 旅行社代订的机票可以退吗
  • 购入固定资产预付款怎么做账
  • 印花税零申报操作流程
  • 持有至到期投资科目被取消了吗
  • 工会经费的会计分录2022
  • 印花税报少了交税了怎么办
  • sqlserver2008r2评估期已过
  • 劳动合同骑缝章第一页没盖上
  • 注册公司注册公司
  • mysql内存使用率过高
  • 运输企业税负率一般控制在多少?
  • 合同法有什么规定
  • 搬迁赔偿款
  • 将外购商品作为非货币
  • 小规模纳税人预交增值税率
  • 基建待摊费用如何分摊
  • 先付一部分款发票怎么做
  • 期末结账后没有余额的科目
  • 购进生产设备的进项税额抵扣政策
  • mysql数据库优化总结
  • mysql开发教程
  • mysql 添加外键
  • vc_mbcsmfc.exe是什么
  • ubuntu右上角没有键盘
  • mac取消开机启动项
  • 一键ghost还原备份
  • hda linux
  • linux yum安装apache
  • rhel7配置ip地址
  • win10系统电脑怎么关机
  • ubuntu安装指南
  • 电脑安装win8
  • 删除rpm安装包
  • js中数组操作
  • 用python编写程序
  • linux bash中too many arguments问题的解决方法
  • jQuery simpleModal插件的使用介绍
  • 四个落实是哪四个落实
  • 教师十三薪是什么意思
  • 新疆税务干部学校招聘
  • 国家税务局查询发票
  • 药店开给个人的增值税发票是什么样
  • 深圳宝安到揭阳大巴
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设