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 相关文章推荐
js读取cookie方法总结
Oct 31 Javascript
js查找节点的方法小结
Jan 13 Javascript
jquery实现移动端点击图片查看大图特效
Sep 11 Javascript
javascript实现九宫格相加数值相等
May 28 Javascript
AngularJS实现在ng-Options加上index的解决方法
Nov 03 Javascript
jquery.multiselect多选下拉框实现代码
Nov 11 Javascript
详解node+express+ejs+bootstrap构建项目
Sep 27 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
Feb 03 Javascript
Seajs源码详解分析
Apr 02 Javascript
小程序如何支持使用 async/await详解
Sep 12 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
Sep 20 Javascript
详细分析React 表单与事件
Jul 08 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 搜索框提示(自动完成)实例代码
2012/02/05 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
Js 随机数产生6位数字
2010/05/13 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
Python中解析JSON并同时进行自定义编码处理实例
2015/02/08 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
销售员自我评价怎么写
2013/09/19 职场文书
创伤外科专业推荐信范文
2013/11/19 职场文书
法律七进实施方案
2014/03/15 职场文书
精彩广告词大全
2014/03/19 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
初中家长评语和期望
2014/12/26 职场文书
教师创先争优承诺书
2015/04/27 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python