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 相关文章推荐
sogou地图API用法实例教程
Sep 11 Javascript
判断window.onload是否多次使用的方法
Sep 21 Javascript
js关于命名空间的函数实例
Feb 05 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
总结Javascript中的隐式类型转换
Aug 24 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
Sep 06 Javascript
socket.io实现在线群聊功能
Apr 07 Javascript
JS利用cookies设置每隔24小时弹出框
Apr 20 Javascript
详解微信JS-SDK选择图片遇到的坑
Aug 15 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
Aug 27 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
Sep 26 Javascript
在antd Form表单中select设置初始值操作
Nov 02 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学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
PHP获取当前完整URL地址的函数
2014/12/21 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
javascript的函数
2007/01/31 Javascript
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
Javascript中innerHTML用法实例分析
2015/01/12 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
使用JavaScript实现表格编辑器(实例讲解)
2017/08/02 Javascript
微信小程序picker组件下拉框选择input输入框的实例
2017/09/20 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
[03:55]2016国际邀请赛中国区预选赛首日TOP10精彩集锦
2016/06/27 DOTA
启动Atom并运行python文件的步骤
2018/11/09 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
python做接口测试的必要性
2019/11/20 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
html5 学习简单的拾色器
2010/09/03 HTML / CSS
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
荷兰手表网站:Watch2Day
2018/07/02 全球购物
十佳班主任事迹材料
2014/01/18 职场文书
护士医德医风自我评价
2014/09/15 职场文书
车辆年检委托书范本
2014/10/14 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
i7 6700处理器相当于i5几代
2022/04/19 数码科技