`
wsj123
  • 浏览: 154749 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

javascript定时功能详解

    博客分类:
  • JS
阅读更多
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动态网页开发详解——JavaScript特效

    在“JavaScript动态网页开发详解——JavaScript特效”这一主题中,我们将深入探讨JavaScript如何实现各种炫酷的网页效果。 一、JavaScript基础 在讨论特效之前,我们需要了解JavaScript的基础。JavaScript语法与...

    EXTJS定时刷新功能代码

    ### EXTJS定时刷新功能代码详解 #### 一、概述 在Web开发中,为了实现实时数据更新,经常需要使用定时器技术来周期性地刷新数据。EXTJS作为一个强大的前端框架,提供了丰富的组件和API来简化开发过程。本文将详细...

    JavaScript定时器详解及实例

    JavaScript定时器是JavaScript编程中用于控制代码执行时间的工具,能够实现定时或周期性执行代码的功能。在JavaScript中,定时器主要通过window对象提供的两个方法实现:setTimeout()和setInterval()。以下是有关...

    ArcGIS for JavaScript 车辆轨迹回放

    《ArcGIS for JavaScript 车辆轨迹回放详解》 ArcGIS for JavaScript 是Esri公司提供的一个强大的Web GIS开发框架,它允许开发者使用JavaScript语言构建交互式的地理信息系统应用。在这个小示例中,我们将深入探讨...

    phpcms 定时任务模块

    **phpcms 定时任务模块详解** 在网站管理和运营中,定时任务是一个不可或缺的功能,它允许网站自动执行一些预设的操作,而无需人工干预。phpcms 的定时任务模块就是为了解决这一需求而设计的,尤其对于那些需要定期...

    javascript经典例子.txt

    ### JavaScript经典例子知识点详解 #### 一、验证类 **1. 数字验证** - **1.1 整数验证** - 正则表达式:`/^(-|\+)?\d+$/.test(str)` - 说明:该正则表达式能够验证字符串是否为整数,包括正整数、负整数以及带...

    页面加载事件、页面定时任务

    **页面定时任务**则是指在网页中按照预定的时间间隔重复执行某个函数或方法的功能。这在数据更新、实时监控等场景中非常实用。 #### 二、页面加载事件详解 页面加载事件是页面首次加载完成后的触发事件。在...

    定时任务,JSP

    结合以上知识点,我们可以构建一个系统,用户在deviceManage.jsp页面上设定设备的定时任务,后台使用Quartz或者Spring的定时任务功能执行这些任务,同时在页面上实时显示任务执行情况,提供良好的用户交互体验。...

    html+javascript

    此外,我还利用JavaScript的定时器(`setTimeout`和`setInterval`)来实现动画效果或定时任务。例如,制作了一个倒计时钟或者一个自动轮播的图片展示模块。JavaScript的面向对象编程也让我能够组织代码,创建可复用...

    JavaScript权威指南(第五版英文原版)

    - **Ajax**:异步JavaScript和XML的缩写,主要用于实现不刷新整个页面的情况下更新部分内容的功能。 **2. XML Processing** - **DOM vs. SAX**:DOM用于解析XML文档并构建内存中的树形结构;SAX用于顺序解析XML...

    javascript时钟控件

    ### JavaScript时钟控件知识点详解 #### 一、概述 在网页开发中,有时我们需要在页面上显示实时的时间,这不仅能够为用户提供便利,还能增强网站的交互性和实用性。JavaScript作为一种常用的前端脚本语言,提供了...

    html网页中常用的JavaScript

    ### HTML网页中常用的JavaScript知识点详解 #### 一、弹出模态对话框 在HTML页面中,有时我们需要创建一个模态对话框来显示特定的信息或让用户进行某种操作。JavaScript提供了`showModalDialog`方法实现这一功能。...

    Asp定时执行操作 Asp定时读取数据库(网页定时操作详解)

    总结来说,在ASP中实现定时操作,无论是通过客户端的定时刷新,JavaScript的定时器,还是服务器端的定时组件,都有其适用的场景和限制。理解这些方法的工作原理和使用场景,对于设计和开发出高效且稳定的定时任务至...

    javascript浮动的广告源码

    JavaScript浮动物理广告源码详解 在Web开发中,JavaScript是一种不可或缺的脚本语言,尤其在前端领域,它被广泛用于实现动态交互效果。本文将深入解析“javascript浮动的广告源码”,帮助开发者理解如何利用...

    javaScript实用例子

    6. **异步编程**:JavaScript中的异步编程主要依赖回调函数、Promise和async/await,它们对于处理耗时的操作如Ajax请求或定时任务非常关键。 7. **AJAX**:Asynchronous JavaScript and XML,用于在不刷新整个页面...

    javascript全面总结

    ### JavaScript全面总结:核心知识点详解 #### 一、事件处理机制与操作 JavaScript中的事件处理是前端开发中不可或缺的一部分,涉及到用户与页面交互的各种场景。本文档覆盖了事件的多种处理方式,包括事件源对象...

    北大青鸟ACCP5.0_S2(完)JavaScript客户端验证和页面特效制作(JavaScript)

    【标题】北大青鸟ACCP5.0_S2(完)JavaScript客户端验证和页面特效制作(JavaScript)课程,是北大青鸟教育体系中的一门重要课程,主要关注于使用JavaScript进行网页的交互式功能实现,包括客户端数据验证和动态效果的...

    javascript window对象

    ### JavaScript Window 对象详解 #### 一、简介 在JavaScript中,`Window`对象是所有浏览器窗口的基础。它是全局对象,也是顶级对象。对于初学者来说,了解`Window`对象的基本概念及其方法是非常重要的,这有助于...

Global site tag (gtag.js) - Google Analytics