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 相关文章推荐
javascript 常用方法总结
Jun 03 Javascript
javascript offsetX与layerX区别
Mar 12 Javascript
Jquery知识点三 jquery表单对象操作
Jan 17 Javascript
a标签的href和onclick 的事件的区别介绍
Jul 26 Javascript
jquery插件unobtrusive实现片段式加载
Jun 15 Javascript
iframe跨域通信封装详解
Aug 11 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
Mar 28 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 Javascript
关于vue的npm run dev和npm run build的区别介绍
Jan 14 Javascript
微信小程序事件 bindtap bindinput代码实例
Aug 26 Javascript
Vue项目环境搭建详细总结
Sep 26 Javascript
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
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的中问验证码
2006/11/25 PHP
php visitFile()遍历指定文件夹函数
2010/08/21 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
深入浅析Python中的yield关键字
2018/01/24 Python
python实现dijkstra最短路由算法
2019/01/17 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
Python实现最常见加密方式详解
2019/07/13 Python
python实现桌面托盘气泡提示
2019/07/29 Python
python日志模块logbook使用方法
2019/09/19 Python
python 图片二值化处理(处理后为纯黑白的图片)
2019/11/01 Python
Python运行异常管理解决方案
2020/03/09 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
八项规定整改方案
2014/02/21 职场文书
文化活动实施方案
2014/03/28 职场文书
毕业留言寄语大全
2014/04/10 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
暑期学习心得体会
2014/09/02 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
演讲比赛主持词
2015/06/29 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript
MongoDB日志切割的三种方式总结
2021/09/15 MongoDB
python库Tsmoothie模块数据平滑化异常点抓取
2022/06/10 Python