位置: 编程技术 - 正文

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

  • 收到退税款怎么入账
  • 纳税人证明模板
  • 滴滴电子普通发票怎么抵扣
  • 公司如何做成集团
  • 税控盘当月不抵扣怎么申报
  • 支付宝理财提现到银行卡有费用吗
  • 实名制车票抵扣怎么操作
  • 负债的账面价值减去未来期间计算应纳税所得额
  • 申报入库税款怎么分税种发给税管员
  • 建安企业核定征收税率多少
  • 以前年度损益调整影响哪个科目
  • 所得税汇算清缴表在哪里打印
  • 建设单位对施工单位的管理要求
  • 进货有商业折扣商品怎么入库
  • 12月结账写本年累计吗
  • 企业所得税退税的会计分录怎么做
  • 发票没开完可以领取吗?
  • 借钱注册公司会计分录
  • 税务局不备案可以吗
  • 发票收到本月进账怎么办
  • 法人变更涉及到什么
  • 水利工程水费怎样计算
  • php和ajax用哪个调用数据
  • 保险公司应收账款管理现状及存在的问题
  • ssms注释
  • php递归遍历文件夹
  • php流程引擎
  • 米尔巴特之战
  • web服务器的搭建与应用
  • 阿里云主机安装软件
  • HTTP/1.1 XCache header field
  • 企业收到土地补偿金需要开发票吗
  • 2022年山东省固定资产投资额
  • sqlserver2008数据库文件路径
  • PostgreSQL教程(九):事物隔离介绍
  • sqlalchemy 封装
  • 存货是指企业在生产经营过程中为销售或耗用
  • 给员工购买
  • 事业单位资产负债表自动转帐
  • 销项税怎么做账
  • 辅导费入什么科目
  • 托收承付方式销售商品是什么意思
  • 付款金额与收到款的关系
  • 全额事业单位和差额事业单位退休工资有什么区别
  • 收到外国人的礼物怎么感谢
  • 管理费用抵消分录
  • 个税计提多了怎么办,跨年度了
  • 纳税期限与申报期限的区别
  • 对外付汇代扣代缴所得税
  • 工地上报销项目有哪些
  • 工资补偿款是什么意思
  • 外籍人员个税汇算清缴流程
  • 无进项发票开具销项发票
  • 法人网上变更流程
  • 年度汇算清缴要补税怎么办
  • 手工账明细账怎么登记
  • 开出去的发票
  • 金税盘显示已到锁死期
  • 研发支出费用化支出结转到哪个科目
  • 跨服务器访问数据库
  • mysql字符串类型有哪些
  • win7系统开机屏幕出现一条蓝色横杠闪烁
  • 利用arp指令,能够防止arp欺骗吗?
  • win8系统怎么设置桌面图标
  • 安装centos7.7
  • win7系统怎么禁用开机启动项
  • win7怎么打开windows media player
  • nodejs 文件操作
  • javascript中的关键字有哪些
  • jquery监听页面刷新
  • 下列关于eval()函数的说法正确的是
  • jquery动态添加样式
  • js的a标签
  • fiori开发工具
  • HAL code debug
  • python文字检测
  • 使用androidx
  • 民办非企业需要办理税务登记吗
  • 南京市车位产权证办理流程
  • 我各位一个关于网上申报增值税所得税的申报流
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设