位置: 编程技术 - 正文

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

  • 离职员工奖金发放规定
  • 农产品进项税额转出怎么算
  • 二手车交啥税
  • 销售20万需要多少进项
  • 发票章盖金额上去了
  • 行政事业性收费票据
  • 外币借款汇兑差额资本化额怎么计算
  • 行政性罚款可以扣除吗
  • 应付账款逾期利息会计分录
  • 公司亏损没有收入怎么办
  • 建筑服务 1%
  • 开了增值税发票不确认收入可以吗
  • 贸易公司买进卖出
  • 清包工程增值税税率
  • 个税免税收入填错了怎么办
  • 公司工会发给职工的福利
  • 企业所得税怎么征收几个点
  • 会议费 报销
  • 增值税的附加税有哪些,税费多少
  • 民间非营利组织会计制度最新版
  • 减免税款未抵扣增值税
  • Windows11预览体验
  • php双冒号和箭头
  • 上一年度会计科目错误怎么更正
  • echarts w3c
  • safe software
  • 按实际成本结转6日和7日的材料采购成本
  • 哪一年底,由linux基金会成立?
  • 金融企业风险资产处理相关税收政策
  • 缴纳个税时怎么做分录
  • 同一控制下企业合并报表编制
  • 采购过程中发生材料毁损,由保险公司赔偿的部分
  • phprestfulapi框架
  • php生成随机字母数字代码
  • 对抗生成网络算法
  • 基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现
  • 其他应付款的项目
  • linux0.11编译
  • 为什么没缴税
  • 增值税留抵税额科目如何使用
  • 红字信息表重复了怎么办
  • 进口商品会计分录怎么写
  • u8存货核算对方科目怎么设置
  • 房企预缴增值税
  • 制造费用哪些是变动的哪些是固定的
  • 农产品增值税免税备案资料
  • 专票红冲要不要收回发票联呢?
  • 金蝶kis专业版仓存期末结账
  • 什么是全面一次性奖金
  • sqlserver远程连接失败
  • 社保缴费基数应该怎么算
  • 进项税额不得抵扣的情况
  • 应收票据周转率怎么分析
  • 公司股东投资是什么意思
  • 辅导期一般纳税人什么意思
  • 应付账款现金折扣会计分录
  • 二手设备进口报关流程
  • 购置固定资产进项税处理的变迁
  • mysql修改版本号
  • win8.1官方
  • win10 impact
  • windows2000文件和文件夹的属性包括
  • linux中sed详细用法
  • 如何用virtualbox安装linux
  • win7系统屏幕一直闪怎么办
  • win7用户账户控制设置电脑重启后恢复
  • 安装音乐库
  • node.js http服务器
  • shell脚本字符串换行
  • python选择器
  • js settimeout用法
  • Node.js中的事件循环是什么意思
  • JavaScript中的变量名不区分大小写
  • jquery的理解
  • 税务局稽查科是干什么的工作
  • 山东省国税地税体制改革
  • 陕西省国家税务局总局官网
  • 注册会计师和注册审计师哪个厉害
  • 河北耕地占用税最新规定
  • 服务类发票 如何入账
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设