js超时调用setTimeout和间歇调用setInterval实例分析


Posted in Javascript onJanuary 28, 2015

本文实例分析了js超时调用setTimeout和间歇调用setInterval的用法。分享给大家供大家参考。具体如下:

今天看了javascript高级程序设计(第三版)一书,发现说setTimeout比setInterval更好,觉得的确如此。平时都是用setInterval多点,现在还是转一下思路了。又学习到了。分析如下:

setTimeout包含两个参数,第一个参数是要执行的代码,第二个参数是时间。
第一个参数可以是字符串也可以是函数,但是推荐使用函数而不是字符串。
使用字符串相当于eval方法。导致性能损失。

clearTimeout()

超时调用的代码都是在全局作用域中执行的,因此函数中this的值在费严格模式下指向window对象,在严格模式下是undefined

//setInval
var num = 0;

var max = 10;

var intervalId = null;
function incrementNumber(){

   num++;

   if(num == max){

      clearInterval(innervalId);

      alert('done');

   }

}
intervalId = setInterval(incrementNumber(),500);
//setTimeout 实现相同功能
var num = 0;

var max = 10;

function incrementNumber2(){

   num++;

   if(num < max){

      setTimeout(incrementNumber2,500);

   }else{

      alert('done');

   }

}

setTimeout(incrementNumber2,500);

以上对比可以发现,使用超时调用时,没有必要跟踪超时调用id,因为每次执行代码之后,如果不再设置另一次超时调用,调用就会自行停止。

一般认为,如果超时调用用来模拟间歇调用的是一种最佳模式。

在开发环境下,很少真正的间歇调用,原因是后一个间歇调用可能会在前一个间隙调用结束之前启动。

最好不要使用间歇调用。

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
Apr 12 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
Apr 21 Javascript
js中onload与onunload的使用示例
Aug 25 Javascript
javascript引用赋值(地址传值)用法实例
Jan 13 Javascript
动态的9*9乘法表效果的实现代码
May 16 Javascript
javascript 中事件冒泡和事件捕获机制的详解
Sep 01 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 Javascript
关于vue的npm run dev和npm run build的区别介绍
Jan 14 Javascript
js实现删除li标签一行内容
Apr 16 Javascript
运用js实现图层拖拽的功能
May 24 Javascript
浅谈Vue的响应式原理
May 30 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
Mar 14 Javascript
javascript原型链继承用法实例分析
Jan 28 #Javascript
Jquery 实现图片轮换
Jan 28 #Javascript
javascript查询字符串参数的方法
Jan 28 #Javascript
Jquery 实现弹出层插件
Jan 28 #Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
Jan 28 #Javascript
Jquery 实现table样式的设定
Jan 28 #Javascript
Jquery 实现checkbox全选方法
Jan 28 #Javascript
You might like
PHP下10件你也许并不了解的事情
2008/09/11 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
如何让动态插入的javascript脚本代码跑起来。
2007/01/09 Javascript
文本框的字数限制功能jquery插件
2009/11/24 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
介绍Python中的文档测试模块
2015/04/28 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
2020/06/05 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
python 代码运行时间获取方式详解
2020/09/18 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
交通法规咨询中心工作职责
2013/11/27 职场文书
工程师岗位职责规定
2014/02/26 职场文书
2014中考励志标语
2014/06/05 职场文书
医院科室评语
2015/01/04 职场文书
先进个人总结范文
2015/02/15 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang