位置: 编程技术 - 正文

详解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设置图片大小)

  • 购买车位的税费是多少钱
  • 已经认证抵扣的发票还能作废吗
  • 固定资产的折旧费用计入什么科目
  • 收取职工工会会费收据
  • 盈余公积补亏为什么未分配利润增加
  • 缴纳的增值税比账面的少怎么做账
  • 办理外经证后缴税怎么交
  • 小微企业减免所得税
  • 企业持有到期债券的风险
  • 房产税直接减免政策
  • 我们应该怎么做才能成功
  • 增值税发票本月没用完可以下月用吗
  • 小规模纳税人开了3%的专票还能享受1%
  • 建筑施工企业预交税款
  • 保洁劳务税点
  • 开旅游公司有补贴吗
  • 小规模印花税减免性质代码和项目名称
  • 药材种植政策
  • 会计相关行业的工作职责和招聘要求
  • 补缴去年的社保怎么做账
  • 处置报废车辆如何缴纳增值税
  • 苹果电脑怎么截屏ctrl加什么
  • deepin启动延时
  • 西方会计要素有哪些
  • macos新版本
  • linux中的
  • Win11 Build 22449.1000更新里哪些内容?Win11 Build 22449更新介绍与安装方法
  • 跨年销货退回账务处理
  • 所得税季报填报说明
  • wmiprvse.exe是什么程序
  • 公司向股东借的钱怎么还
  • 固定资产折旧提完后只剩净残值
  • 出差补助需要发工资吗
  • 基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现
  • 神经网络模型是干嘛的
  • js检查json是否合法
  • 手把手怎么写
  • phpcms教程
  • 金蝶年底结账流程
  • 业务招待费调增额怎么算
  • 收入的确认规则
  • mysql5.6.24
  • 初识SQLITE3数据库
  • 开发日志模板
  • 工会经费按每月
  • 施工企业会计科目
  • 商业一般纳税人辅导期截止时间
  • 固定资产减少处理
  • 小微企业的认定标准企业所得税
  • 国债利息收入要征税吗
  • 增值税小规模纳税人2023年政策
  • 注册资本与实收资本是否一致
  • 应收账款坏账计入资产减值损失还是信用减值损失
  • 企业所得税退税怎么操作
  • 新冠肺炎疫情相关租金减让适用简化处理方法的时间范围
  • 现金日记账怎么填写规范
  • sql拆分函数
  • windows7创建虚拟桌面
  • WINDOWS系统无法正常启动
  • w7系统ip地址
  • centos如何查询版本号
  • pe硬盘安装win7系统教程
  • linux怎么使用无线网卡
  • centos7如何设置ip
  • Win10预览版镜像
  • win7 64位系统重装后无线信号找不到的原因分析以及解决方法
  • cocos2d-js教程
  • 编辑器ui
  • Node.js + Redis Sorted Set实现任务队列
  • python hashcode
  • unity3d跨平台
  • 改变图片透明度怎么调
  • 查看本机开放端口号
  • unity引擎工具
  • javascript组成
  • python查询系统
  • js对象索引获取key
  • 河北市国家税务局官网
  • 大连天气app
  • 公安驻税务联络办公室
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设