本来这两个也没什么好说的 用法之类的自行看文档

这里说说用setTimeout模拟setInterval

为什么要模拟呢.用过setInterval的人可能会有这个需求

  • 看原因

setInterval指定的是,“开始执行”之间的间隔,因此实际上,两次执行之间的间隔会小于setInterval指定的时间。假定setInterval指定,每100毫秒执行一次,每次执行需要5毫秒,那么第一次执行结束后95毫秒,第二次执行就会开始。如果某次执行耗时特别长,比如需要105毫秒,那么它结束后,下一次执行就会立即开始。

var i = 1;var timer = setInterval(function() {alert(i++);}, 2000);

上面代码每隔2000毫秒,就跳出一个alert对话框。如果用户一直不点击“确定”,整个浏览器就处于“堵塞”状态,后面的执行就一直无法触发,将会累积起来。举例来说,第一次跳出alert对话框后,用户过了6000毫秒才点击“确定”,那么第二次、第三次、第四次执行将累积起来,它们之间不会再有等待间隔。

  • 为了确保两次执行之间有固定的间隔上面的代码可以改写成如下
var i = 1;
var timer = setTimeout(function() {alert(i++);timer = setTimeout(arguments.callee, 2000);
}, 2000)

最后

  • 看用setTimeout模拟setInterval 代码
function interval(func, wait){var interv = function(w){return function(){setTimeout(interv, w);func.call(null);}}(wait);setTimeout(interv, wait);
}interval(function(){console.log(2);
},1000);

转载于:https://www.cnblogs.com/moli-/p/11130452.html

setTimeout和setInterval相关推荐

  1. javascript requestAnimationFrame 解决 setTimeout、setInterval 时间不准的方法。

    javascript requestAnimationFrame 解决 setTimeout.setInterval 时间不准的方法. 取代 setInterval <!DOCTYPE html ...

  2. setTimeOut()和setInterval()的用法

    setTimeOut()和setInterval()的用法 setTimeOut(function(){},1000); 在特定时间之后调用函数,只调用一次 setInterval(function( ...

  3. setTimeout和setInterval实现定时器的区别

    这两个方法都能够用来实现在一个固定时间段之后去运行JavaScript.只是两者各有各的应用场景. 方 法 实际上,setTimeout和setInterval的语法相同.它们都有两个参数,一个是将要 ...

  4. js中计时器setTimeout、setInterval、requestAnimationFrame区别

    转载自:https://www.cnblogs.com/xiaohuochai/p/5777186.html 本文仅用于作为学习笔记 计时器一直是javascript动画的核心技术.而编写动画循环的关 ...

  5. setTimeout和setInterval的使用

    (节选自JavaScript精粹) 这两个方法都可以用来实现在一个固定时间段之后去执行JavaScript.不过两者各有各的应用场景. 方 法 实际上,setTimeout和setInterval的语 ...

  6. JavaScript———从setTimeout与setInterval到AJAX异步

    setTimeout与setInterval执行 首先我们看一下以下代码打印结果 1 2 3 4 5 6 7 console.log(1); setTimeout(function() { conso ...

  7. js的事件循环机制:同步与异步任务(setTimeout,setInterval)宏任务,微任务(Promise,process.nextTick)...

    javascript是单线程,一切javascript版的"多线程"都是用单线程模拟出来的,通过事件循环(event loop)实现的异步. javascript事件循环 事件循环 ...

  8. setTimeout和setInterval你真的了解吗?

    setTimeout和setInterval这两个函数, 大家肯定都不陌生, 但可能并不是每个用过这两个方法的同学, 都了解其内部的实质, 甚至可能会错误的把两个实现定时调用的函数理解成了类似thre ...

  9. js中setTimeout的用法和JS计时器setTimeout与setInterval方法的区别和confirm方法

    setTimeout()在js类中的使用方法 setTimeout (表达式,延时时间) setTimeout(表达式,交互时间) 延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTi ...

  10. setTimeout 和 setInterval

    由于 JavaScript 是异步的,可以使用 setTimeout 和 setInterval 来计划执行函数. 注意: 定时处理不是ECMAScript 的标准,它们在DOM (文档对象模型) 被 ...

最新文章

  1. vc 获取月份的天数_「青少年编程」课程:输入年份与月份,得到该月有多少天...
  2. JSP简单练习-页面重定向
  3. Qt Creator建立一个通用项目
  4. axios怎么封装,才能提升效率?
  5. matlab常用函数辨析
  6. TSAP传输服务访问点
  7. 关于下一代IM服务器的一点想法
  8. 7-2 是否完全二叉搜索树 (30分)
  9. UE4中多种颜色轮廓线的后期处理
  10. VC中自动改变控件位置和大小的对话框类
  11. PAIP.利用SyncML协议来同步备份手机短信联系人.txt
  12. 如何只用HTML创建一个时间计划表?
  13. 轻博客之点点推他模式分析
  14. 老大难的GC原理及调优,这下全说清楚了
  15. Intel汇编-传送MMX整数
  16. unity URP内置shader lit解析
  17. anaconda创建虚拟环境Solving environment: failed
  18. Nginx系列:后端服务应用健康检测
  19. 使用云服务器创建网站(完整开发过程)
  20. 如何进行时间管理-“Do it now”读后感

热门文章

  1. 程序员想早点下班被经理拒绝,一气之下要辞职,经理慌了
  2. python和java语言的区别
  3. 河北外国语学院计算机宿舍,河北外国语学院宿舍怎么样 住宿条件好不好
  4. python php 序列化,序列化和反序列化的详细介绍
  5. Flash开发iOS应用全攻略(四)——如何为iTunes Connect准备应用
  6. Android 7.0后 播放U盘中的视频文件的解决方案
  7. php的limit分页,用php数组的array_slice分页和用limit查询分页哪个效率更高?
  8. r语言和python爬虫谁厉害_R语言中,RCurl优势在哪儿,做爬虫的话用Python还是RCurl效率高?...
  9. sv信道模型是什么_Unity Shader|基本光照模型实现中遇到的疑思
  10. 嵌入式Linux入门6:u-boot移植