位置: 编程技术 - 正文

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

  • 自行研发的无形资产不确认递延所得税
  • 所得税汇算清缴报告在哪查
  • 小规模30万免税包括30万吗
  • 报税扣款锁定如何解除
  • 税务行政处罚是指
  • 车辆保险费印花税目
  • 人工费用的核算例题
  • 更改增值税申报表有退税会很麻烦吗
  • 费用票如何做账务处理
  • 收购农产品进项税抵扣税率是多少
  • 甲方代扣水电费怎么做账
  • 滞纳金海关
  • 临时员工和正式员工区别
  • 因技术原因淘汰的财产形成的损失需备案吗
  • 缴纳社保的会计分录怎么做
  • 不动产税征收标准
  • 收取外部客户电费如何结转成本
  • 法人 持股
  • 售后回租有风险吗
  • 工程类一般纳税人可以开3%的税率吗
  • 未达起征点的增值税要交所得税吗
  • 税务局开票需要带什么材料
  • 可以给农村信用社的存折转账吗
  • 支付境外咨询费代扣代缴增值税
  • 发放的离职补偿金怎么做账
  • 申请开立临时存档的条件
  • 外地预缴增值税可以抵本地增值税
  • 腾讯电脑管家帮忙卸载
  • php header refresh
  • 修建污水厂需要办理哪些审批
  • php实用的案例
  • 有了php源码该如何使用 新手
  • 员工离职的类型
  • Maximum call stack size exceeded错误
  • 政府补助资金使用范围及管理方法
  • css设置背景颜色透明
  • 招待费增值税能抵扣吗
  • 未分配利润可以转实收吗
  • 小规模企业做账表格
  • 蓝桥杯c题库及答案
  • html span标签作用
  • html获取php数据
  • python中insert函数怎么用
  • 手机充值如何开公司发票
  • 税种分类及其税率
  • pythonif嵌套语句
  • mongodb介绍
  • python中exec执行如何获取返回值
  • 收保险公司工伤怎么赔偿
  • 固定资产净残值账务处理
  • 大额医疗保险计入什么科目
  • sql2008服务器
  • 电子税务局能不能逾期申报个税
  • 利息收入计入科目
  • 股东权益合计是所有者权益总和么
  • 收到加工费怎么做账务处理分录
  • 去年购进的货物怎么做账
  • 专项存款可以放在什么科目
  • 农民扶贫款到哪去领
  • 独立核算好处
  • 全额工资和实发工资
  • 固定资产的调整科目
  • mysql错误处理
  • windos桌面
  • windows 批处理
  • explorer.exe进程文件
  • win10个性化颜色在开始任务栏选不了
  • windows7看视频黑屏
  • unity as
  • shell脚本转换为exe
  • linux怎样过滤一个关键字
  • vue路由跳转的钩子函数什么时候会用到
  • vr project
  • jquery自动加载的方法
  • cocos2dx:C++层通过JniHelper调用JAVA层代码进而调用Android手机应用接口
  • 猫的喵喵
  • 国家对高校食堂的最新管理规定
  • 黄南同仁县海拔多少米
  • 淄博市地方税务局
  • 收取广告费收入怎么入账
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设