javascript定时功能详解
1.1概述
javascript的内置setInterval()与setTimeout()函数提供了定时的功能,前者是每隔几秒执行一次,后者是延迟一段时间执行一次。此外,javascript内置的clearInterval()函数用于取消定时器功能。
1.2 setInterval()函数
定义:
setInterval()函数可按照指定的周期(以毫秒计)来调用函数或计算表达式,使用 clearInterval()函数可以取消该周期性的方法调用。
语法:
var intervalID = window.setInterval(func, delay[, param1, param2, ...]);
var intervalID = window.setInterval(code, delay);
参数详解:
intervalID —— 此重复操作的唯一辨识符,可以作为参数传给clearInterval()。
Func —— 重复调用的函数。
code —— 重复执行的一段字符串构成的代码(使用该语法是不推荐的,不推荐的原因和eval()一样)。
delay —— 每次延迟的毫秒数。
注意:IE浏览器不支持第一种语法中向延迟函数传递额外参数的功能。
实例:
var fn=function(){ alert("fn()函数被执行了"); } setInterval(fn,1000);//每隔1min弹窗一次
注意:第一次执行后如果不关闭弹窗,则下一秒不会再执行该函数。出现这种现象的原因是javascript 是一个单线程环境,被阻塞了。
1.3 setTimeout()函数
定义:
setTimeout()在指定的延迟时间之后调用一个函数或者执行一个代码片段,使用clearTimeout()函数可取消由 setTimeout() 方法设置的延迟调用。
语法:
var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
var timeoutID = window.setTimeout(code, delay);
参数详解:
timeoutID —— 该延时操作的数字ID,可作为参数传给clearTimeout()。
func —— delay毫秒之后执行的函数。
code —— delay毫秒之后执行的代码 (使用该语法是不推荐的, 不推荐的原因和eval()一样)。
delay —— 延迟的毫秒数。
注意:IE浏览器不支持第一种语法中向延迟函数传递额外参数的功能。
实例一:
setTimeout(function() { console.log(1); }, 1000); //延迟1min后打印1 或setTimeout("console.log(1);", 1000); //不推荐使用的语法
实例二:
setTimeout(function() { console.log(1); }, 0); console.log(2); //执行结果是:先输出2,再输出1。
注意:出现这样现象的原因是:当事件队列为空的时候,才会执行SetTimeout()里面的代码。
1.3 clearInterval()函数
语法:
window.clearInterval(intervalID);// intervalID是setInerval()的返回值,是此setInerval()函数的唯一标识。
注意:用 clearInterval(Method);来清除,往往不能马上停止。
实例一:
<html lang="en"> <head> <meta charset="UTF-8"> <title>实例</title> </head> <body> <div id="clock"></div> <button id="btn"></button> <script> function Clock(clockDiv){ this.clockDiv=clockDiv; this.getCurrentDate=function(){ var currDate=new Date(); var currDateTime=currDate.getFullYear()+"-"+(currDate.getMonth()+1)+"-"+currDate.getDate()+" "+currDate.getHours()+":"+currDate.getMinutes()+":"+currDate.getSeconds(); this.clockDiv.innerHTML=currDateTime; } } var clockDiv=document.getElementById("clock"); var clickObj=new Clock(clockDiv); var intervalId=window.setInterval(function () { clickObj.getCurrentDate(); },1000); document.getElementById("btn").onclick=function(){ window.clearInterval(intervalId); } </script> </body> </html>
实例二:
//定义计算器全局变量 var pageTimer = {} ; //赋值模拟 pageTimer["timer1"] = setInterval(function(){},2000); pageTimer["timer2"] = setInterval(function(){},2000); //全部清除方法 for(var each in pageTimer){ clearInterval(pageTimer[each]); } //暴力清除 for(var i = 1; i < 1000; i++) { clearInterval(i); }
分析:实际上暴力清除的方式是不可取的,在不得已情况下才使用,在IE下,定时器返回值在IE下面是8位数字如:248147094,并且起始值不能确定,而Chrome和firefox下是从1开始的个位数字,一般项目还是建议第一种,并且第一种的扩展性也好。
1.5 clearTimeout()函数
语法:
window.clearTimeout(settimeoutID); //settimeID是setTimeout()的返回值,是此setTimeout ()函数的唯一标识。
1.4使用setTimeout()函数优化setInterval()函数的方案
一般不用setInterval()函数,而用setTimeout()函数的延时递归来代替setInterval()函数。setInterval()函数会产生回调堆积,特别是时间很短的时候。
优化方案一:
var timeout = false; //启动及关闭按钮 function time() { if(timeout) return; console.log(1); setTimeout(time,1000); } time();
优化方案二:
var fn=function(){ console.log(1); setTimeout(fn, 1000) } fn();
发表评论
-
JavaScript中对象的总结
2018-03-10 10:43 695JavaScript中对象的总结 1. ... -
JS数字指定长度不足前补零的实现
2018-03-10 10:25 12580JS数字指定长度不足前补零的实现 问题描述: ... -
银行卡卡号校验——Luhn算法
2017-11-06 09:34 2676银行卡卡号校验——Luhn算法 1.1 Luhn简介 ... -
JavaScript数组操作——遍历方法的兼容
2017-11-04 14:46 890JavaScript数组操作——遍历方法的兼容 1.1概述 ... -
Javascript数组操作
2017-11-04 14:17 890Javascript数组操作 1.1颠倒数组元素顺序 1.1. ... -
获取select标签选中值
2017-11-03 08:54 1483获取select标签选中值 1.1实例讲解 <!DOCT ... -
表单提交前的验证方式——form的onsubmit事件
2017-10-30 14:21 8334表单提交前的验证方式——form的onsubmit事件 1.1 ... -
document.forms用法详解
2017-10-30 11:20 2862document.forms用法详解 1.1概述 ... -
js模拟表单post方式提交
2017-10-30 09:44 2151js模拟表单post方式提交 1.1概述 用j ... -
Form表单提交,页面不跳转的方法
2017-10-18 15:09 5670Form表单提交,页面不跳转的方法 1.1 解决方案一 ... -
js程序中$符号详解
2016-09-14 11:13 725js程序中$符号详解 $符号在php中是表示变 ... -
JS比较运算符之等于与不等于详解
2016-07-05 17:56 1924JS比较运算符之等于与不等于详解 1.1等于(==)与不等于( ... -
JS in的用法
2016-04-24 22:20 2391JS in的用法 1.1简介 JavaScript中的in 操 ... -
JS 访问对象中数据易错点总结
2016-04-16 16:07 494JS 访问对象中数据易错点总结 1.1访问Hash中的键值 例 ... -
JS number保留整数及n位小数的方法
2016-04-16 15:27 2811JS number保留整数及n位小 ... -
if语句中使用多个条件的优化
2016-04-16 11:31 7066if语句中使用多个条件 ...
相关推荐
在“JavaScript动态网页开发详解——JavaScript特效”这一主题中,我们将深入探讨JavaScript如何实现各种炫酷的网页效果。 一、JavaScript基础 在讨论特效之前,我们需要了解JavaScript的基础。JavaScript语法与...
### EXTJS定时刷新功能代码详解 #### 一、概述 在Web开发中,为了实现实时数据更新,经常需要使用定时器技术来周期性地刷新数据。EXTJS作为一个强大的前端框架,提供了丰富的组件和API来简化开发过程。本文将详细...
JavaScript定时器是JavaScript编程中用于控制代码执行时间的工具,能够实现定时或周期性执行代码的功能。在JavaScript中,定时器主要通过window对象提供的两个方法实现:setTimeout()和setInterval()。以下是有关...
《ArcGIS for JavaScript 车辆轨迹回放详解》 ArcGIS for JavaScript 是Esri公司提供的一个强大的Web GIS开发框架,它允许开发者使用JavaScript语言构建交互式的地理信息系统应用。在这个小示例中,我们将深入探讨...
**phpcms 定时任务模块详解** 在网站管理和运营中,定时任务是一个不可或缺的功能,它允许网站自动执行一些预设的操作,而无需人工干预。phpcms 的定时任务模块就是为了解决这一需求而设计的,尤其对于那些需要定期...
### JavaScript经典例子知识点详解 #### 一、验证类 **1. 数字验证** - **1.1 整数验证** - 正则表达式:`/^(-|\+)?\d+$/.test(str)` - 说明:该正则表达式能够验证字符串是否为整数,包括正整数、负整数以及带...
**页面定时任务**则是指在网页中按照预定的时间间隔重复执行某个函数或方法的功能。这在数据更新、实时监控等场景中非常实用。 #### 二、页面加载事件详解 页面加载事件是页面首次加载完成后的触发事件。在...
结合以上知识点,我们可以构建一个系统,用户在deviceManage.jsp页面上设定设备的定时任务,后台使用Quartz或者Spring的定时任务功能执行这些任务,同时在页面上实时显示任务执行情况,提供良好的用户交互体验。...
此外,我还利用JavaScript的定时器(`setTimeout`和`setInterval`)来实现动画效果或定时任务。例如,制作了一个倒计时钟或者一个自动轮播的图片展示模块。JavaScript的面向对象编程也让我能够组织代码,创建可复用...
- **Ajax**:异步JavaScript和XML的缩写,主要用于实现不刷新整个页面的情况下更新部分内容的功能。 **2. XML Processing** - **DOM vs. SAX**:DOM用于解析XML文档并构建内存中的树形结构;SAX用于顺序解析XML...
### JavaScript时钟控件知识点详解 #### 一、概述 在网页开发中,有时我们需要在页面上显示实时的时间,这不仅能够为用户提供便利,还能增强网站的交互性和实用性。JavaScript作为一种常用的前端脚本语言,提供了...
### HTML网页中常用的JavaScript知识点详解 #### 一、弹出模态对话框 在HTML页面中,有时我们需要创建一个模态对话框来显示特定的信息或让用户进行某种操作。JavaScript提供了`showModalDialog`方法实现这一功能。...
总结来说,在ASP中实现定时操作,无论是通过客户端的定时刷新,JavaScript的定时器,还是服务器端的定时组件,都有其适用的场景和限制。理解这些方法的工作原理和使用场景,对于设计和开发出高效且稳定的定时任务至...
JavaScript浮动物理广告源码详解 在Web开发中,JavaScript是一种不可或缺的脚本语言,尤其在前端领域,它被广泛用于实现动态交互效果。本文将深入解析“javascript浮动的广告源码”,帮助开发者理解如何利用...
6. **异步编程**:JavaScript中的异步编程主要依赖回调函数、Promise和async/await,它们对于处理耗时的操作如Ajax请求或定时任务非常关键。 7. **AJAX**:Asynchronous JavaScript and XML,用于在不刷新整个页面...
### JavaScript全面总结:核心知识点详解 #### 一、事件处理机制与操作 JavaScript中的事件处理是前端开发中不可或缺的一部分,涉及到用户与页面交互的各种场景。本文档覆盖了事件的多种处理方式,包括事件源对象...
【标题】北大青鸟ACCP5.0_S2(完)JavaScript客户端验证和页面特效制作(JavaScript)课程,是北大青鸟教育体系中的一门重要课程,主要关注于使用JavaScript进行网页的交互式功能实现,包括客户端数据验证和动态效果的...
### JavaScript Window 对象详解 #### 一、简介 在JavaScript中,`Window`对象是所有浏览器窗口的基础。它是全局对象,也是顶级对象。对于初学者来说,了解`Window`对象的基本概念及其方法是非常重要的,这有助于...