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学习笔记 用jquery实现无刷新登录
Aug 08 Javascript
jQuery CSS()方法改变现有的CSS样式
Aug 20 Javascript
javascript制作网页图片上实现下雨效果
Feb 26 Javascript
jQuery简单实现遍历数组的方法
Apr 14 Javascript
javascript比较两个日期相差天数的方法
Jul 23 Javascript
基于Vue实现timepicker
Apr 25 Javascript
javaScript动态添加Li元素的实例
Feb 24 Javascript
JavaScript实现创建自定义对象的常用方式总结
Jul 09 Javascript
解决vue同一slot在组件中渲染多次的问题
Sep 06 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
Jan 05 jQuery
实例讲解JS中pop使用方法
Jan 27 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 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实现图片压缩
2020/09/09 PHP
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
基于javascript代码实现通过点击图片显示原图片
2015/11/29 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
JS中双击和单击事件冲突的解决方法
2018/04/09 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
python执行get提交的方法
2015/04/29 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
django项目搭建与Session使用详解
2018/10/10 Python
使用python Telnet远程登录执行程序的方法
2019/01/26 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
电子商务专业学生的学习自我评价
2013/10/27 职场文书
大学生英语演讲稿
2014/04/24 职场文书
食品安全标语
2014/06/07 职场文书
七夕情人节促销方案
2014/06/07 职场文书
公司总经理岗位职责范本
2014/08/15 职场文书
党员公开承诺书2015
2015/01/21 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫