位置: 编程技术 - 正文

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

  • 个人所得税跨区域可以申报吗
  • 积分兑换开始啦
  • 发票打印格式错误
  • 有限公司能否申请破产
  • 现金流量科目怎么选择
  • 盈亏平衡点产量越高,项目风险越大
  • 吸收合并的税务处理增值税风险
  • 销售折让会影响单价吗
  • 股息红利是否纳入个税合并征税
  • 收到土地使用权转让金会计分录
  • 补交本年增值税计提
  • 预收房款发票开具需要注意哪些?
  • 单次劳务费税率
  • 减免所得税怎么算税率
  • 代数分配法适用于什么
  • 出售废旧物资可以开专票吗
  • 资产减值损失如何结转本年利润
  • 外购商誉是资产吗
  • 一般纳税人专用发票怎么做账
  • 小企业会计准则成本核算方法选什么
  • 事业单位固定资产盘盈账务处理
  • 使用ps能完成的操作有哪些
  • 结转到生产成本的科目
  • 无票费用 规定
  • 什么是suv汽车
  • macbook怎么设置输入法
  • windows10我得电脑
  • 营改增后增值税税率
  • 蚊子叮咬怎么办手抄报
  • 其它应收款的内容
  • 猿人知乎
  • php使用自定义函数的方式
  • 电子退库款
  • 数据分析课
  • web前端基础教程
  • 尚品汇在哪
  • ipcrm命令
  • 营改增后租金收入交什么税
  • 开发票零税率和免税是一样的意思吗
  • 企业所得税营业收入包括什么
  • 商业汇票的承兑银行必须具备下列条件
  • 预算收入分为哪几种方式
  • 交强险还要交车船税?
  • 农副产品商贸公司如何做账
  • 高新企业研发收入占总收入比例怎么算
  • 咨询费发票能抵扣吗
  • 企业买房怎么入账
  • 工资里计提五险什么意思
  • 企业购买土地时土地款缴纳的耕地占用税入账
  • 工程施工和主营业务成本关系
  • executesql 存储过程
  • win10如何连接远程电脑
  • win2008server安装qq
  • windows active directory功能
  • win10系统打印机脱机状态怎么恢复正常打印
  • centos7修复安装
  • win10 系统账户
  • win7系统账户名怎么看
  • win70x80073712解决方法
  • Linux系统配置IP地址
  • linux安装jdk和tomcat
  • unity3D游戏开发
  • Nodejs sublime text 3安装与配置
  • vim fold
  • linux内核结构详解
  • Python搭建HTTP服务器和FTP服务器
  • js中的?
  • jquery escape
  • c#委托的理解
  • 网页文件的标记是
  • nodejss
  • 网页的子页面
  • 浅析jQuery Ajax通用js封装
  • python怎么用
  • 河南省国家税务总局发票查询系统
  • ca证书登录不了网厅怎么办
  • 税是每个人都要交的吗
  • 金税盘读取发票
  • 房屋维修税率是多少
  • 津补贴怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设