`
kwstartw
  • 浏览: 68816 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Javascript 中setTimeout 和 setInterval

阅读更多

这篇文章里我们看一下javascript 中的如何使用setTimeout(), clearTimeout(), setInterval() 和 clearInterval() 几个与时间设置有关的函数。使用这些函数可以设置定时器和延时任务,并且很方便。

  • setTimeout()

windows.setTimeout()函数允许设定一定的延时,来执行所要执行的任务。设置的任务将在函数被调用后的数秒之后被执行。调用方法如下:

setTimeout ( expression, timeout );


expression  是到达延时时间后要执行的javascript 代码

setTimeout 函数将返回数字类型的延时标志,这个返回值会被clearTimeout函数调用 

简单的例子:

 

<input type="button" name="clickMe" value="Click me and wait!"
onclick="setTimeout('alert(\'Surprise!\')', 5000)"/>

 

再点击按钮5秒后弹出信息:"Surprise!"

 

一个较完整的例子:

<script type="text/javascript">

function setToRed ( )
{
  document.getElementById("colourButton").style.color = "#FF0000";
  setTimeout ( "setToBlack()", 2000 );
}

function setToBlack ( )
{
  document.getElementById("colourButton").style.color = "#000000";
}

</script>

<input type="button" name="clickMe" id="colourButton" value="Click me and wait!" onclick="setToRed()"/>

 

从上面的例子可以看到,按钮被点击后,按钮文字变成红色持续两秒钟,随后变成黑色字体。

 

<script type="text/javascript">

var alertTimerId = 0;

function alertTimerClickHandler ( )
{
  if ( document.getElementById("alertTimerButton").value == "Click me and wait!" )
  {
    // Start the timer
    document.getElementById("alertTimerButton").value = "Click me to stop the timer!";
    alertTimerId = setTimeout ( "showAlert()", 3000 );
  }
  else
  {
    document.getElementById("alertTimerButton").value = "Click me and wait!";
    clearTimeout ( alertTimerId );
  }
}

function showAlert ( )
{
  alert ( "Too late! You didn't stop the timer." );
  document.getElementById("alertTimerButton").value = "Click me and wait!";
}

</script>

<input type="button" name="clickMe" id="alertTimerButton" value="Click me and wait!" onclick="alertTimerClickHandler()"/>

 

  • clearTimeout()

 有的时候在延时程序完成之前要结束延时任务,会用到clearTimeout,其调用方式为:

clearTimeout ( timeoutId );


timeoutId 是setTimeout函数被调用后返回的延时标志

下面的例子当用户点击按钮3秒钟后,会弹出对话框信息,但是在此期间用户可以再次点击按钮结束延时,阻止窗口的弹出。

 

 

<script type="text/javascript">

var alertTimerId = 0;

function alertTimerClickHandler ( )
{
  if ( document.getElementById("alertTimerButton").value == "Click me and wait!" )
  {
    // Start the timer
    document.getElementById("alertTimerButton").value = "Click me to stop the timer!";
    alertTimerId = setTimeout ( "showAlert()", 3000 );
  }
  else
  {
    document.getElementById("alertTimerButton").value = "Click me and wait!";
    clearTimeout ( alertTimerId );
  }
}

function showAlert ( )
{
  alert ( "Too late! You didn't stop the timer." );
  document.getElementById("alertTimerButton").value = "Click me and wait!";
}

</script>

<input type="button" name="clickMe" id="alertTimerButton" value="Click me and wait!" onclick="alertTimerClickHandler()"/>

 

  • setInterval() 函数

和setTimeout()函数相似,setInterval函数的定义方法为setInterval(expression, interval);当使用setTimeout函数做如下操作时,可以考虑用setInterval函数替换

 

setTimeout ( "doSomething()", 5000 );

function doSomething ( )
{
  // (do something here)
  setTimeout ( "doSomething()", 5000 );
}

 

 setInterval方法:

 

setInterval ( "doSomething()", 5000 );

function doSomething ( )
{
  // (do something here)
}

 

当需要提供连续精确的时间或时间间隔时setInterval将是最好的选择

  • clearInterval()

和clearTimeout函数一样,通过setInterval返回的ID值,调用clearInterval方法结束一个setInterval,下面是一个可运行的setInterval和clearInterval函数简单实例:

 

 

<script type="text/javascript">

var wooYayIntervalId = 0;

function wooYayClickHandler ( )
{
  if ( document.getElementById("wooYayButton").value == "Click me!" )
  {
    // Start the timer
    document.getElementById("wooYayButton").value = "Enough already!";
    wooYayIntervalId = setInterval ( "wooYay()", 1000 );
  }
  else
  {
    document.getElementById("wooYayMessage").innerHTML = "";
    document.getElementById("wooYayButton").value = "Click me!";
    clearInterval ( wooYayIntervalId );
  }
}

function wooYay ( )
{
  if ( Math.random ( ) > .5 )
  {
    document.getElementById("wooYayMessage").innerHTML = "Woo!";
  }
  else
  {
    document.getElementById("wooYayMessage").innerHTML = "Yay!";
  }

  setTimeout ( 'document.getElementById("wooYayMessage").innerHTML = ""', 500 );

}

</script>

<div id="wooYayMessage" style="height: 1.5em; font-size: 2em; color: red;"></div>
<input type="button" name="clickMe" id="wooYayButton" value="Click me!" onclick="wooYayClickHandler()"/>

 

 

 

 

 

 引用网址:http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/

 

分享到:
评论

相关推荐

    JavaScript中setTimeout和setInterval函数的传参及调用_.docx

    JavaScript 中 setTimeout 和 setInterval 函数的传参及调用 在 JavaScript 中,setTimeout 和 setInterval 函数都是用于在指定的时间点执行某个函数的,但是它们的传参方式和调用方式却有所不同。 setTimeout ...

    Javascript中setTimeOut和setInterval的定时器用法

    Javascript的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等。但它们的应用是有区别的。 ...

    Javascript中, setTimeout() 和 setInterval() 的方法

    在JavaScript编程中,`setTimeout()`和`setInterval()`是两个非常关键的函数,它们用于实现异步编程,特别是在处理动画、定时任务或者延迟执行代码时不可或缺。这两个函数都是全局对象`window`的方法,它们的区别...

    JavaScript中setTimeout和setInterval函数的传参及调用

    在JavaScript编程中,我们经常需要处理时间延迟或周期性任务执行的需求,这时会用到setTimeout和setInterval这两个全局函数。 setTimeout函数用于在指定的毫秒数后执行一次代码块,而setInterval则用于每隔指定的...

    javascript之setTimeOut和setInterval的用法

    使用SetInterval和设定延时函数setTimeout 很类似。setTimeout 运用在延迟一段时间,再进行某项操作。

    javascript中setTimeout和setInterval的unref()和ref()用法示例

    unref()和ref()用法非常的简单,就是取消和回复setTimeout和...//取消setTimeout和setInterval函數的調用  timer.ref();//恢復setTimeout和setInterval函數的調用 是不是超级简单,如果还不明白,请放过javascript吧

    Javascript定时器(二)——setTimeout与setInterval

    在这个主题中,我们将深入探讨`setTimeout`和`setInterval`这两个核心定时器函数,它们在JavaScript中的应用以及它们之间的区别。 首先,`setTimeout`函数用于在指定的毫秒数后调用一个函数或执行一段代码。它的...

    关于JS定时器(setTimeout setInterval)定时不准问题1

    在JavaScript中,setTimeout和setInterval是两个基本的定时器函数,用于实现延迟执行或循环执行某个函数。然而,这两个函数在执行时往往和我们设置的延迟时间有出入。本文将深入探讨JS定时器的执行机制,分析why ...

    javascript setTimeout和setInterval计时的区别详解

    JavaScript中的定时器函数setTimeout和setInterval都用于延迟执行代码,但它们的工作方式和用法有所不同。以下是关于这两个函数的详细解析: 1. setTimeout函数的基本概念和用法: setTimeout是JavaScript中的一个...

    JS中的setTimeout和setInterval的区别JS中的setTimeout和setInterval的区别

    在JavaScript编程中,`setTimeout`与`setInterval`是两个非常常用的函数,用于控制代码执行的时间间隔。虽然它们在功能上有一定的相似性,但其实现的效果却大不相同。下面我们将详细探讨这两个函数的工作原理、用法...

    cpp-timercpp为C开发提供类似于Javascript中的setTimeout和setInterval功能

    `timercpp` 是一个C++库,它的主要目的是为C++开发者提供类似于JavaScript中的`setTimeout`和`setInterval`这两个函数的功能。在JavaScript中,`setTimeout`用于在指定的时间后执行一次回调函数,而`setInterval`则...

    JavaScript定时器:`setTimeout`和`setInterval`的深入指南

    setTimeout和setInterval是JavaScript中两个基本的定时器函数,它们在前端开发中有着广泛的应用。本文将详细介绍这两个函数的使用方法、差异、以及如何在实际项目中有效利用它们。 setTimeout和setInterval是...

    JS中setTimeout和setInterval的最大延时值详解

    在JavaScript编程中,setTimeout和setInterval是两个常用来处理定时任务的函数。setTimeout用于在指定的毫秒数后执行一次给定的函数,而setInterval则每隔指定的毫秒数重复执行给定的函数。然而,这两个函数都有一个...

    setTimeout和setInterval的区别

    在JavaScript中,定时执行任务是通过`setTimeout`和`setInterval`这两个函数来实现的。它们都是用于在指定延迟后执行代码,但它们之间存在显著的区别。 `setTimeout`函数用于在给定的`DelayTime`(延迟时间)过后...

    给c#添加SetTimeout和SetInterval函数.docx

    本文将详细介绍如何在 C# 中实现类似 JavaScript 的 `setTimeout` 和 `setInterval` 功能,并提供具体的实现代码和注意事项。 #### SetTimeout函数详解 `SetTimeout` 函数的主要作用是在指定的时间间隔后执行一次...

    JavaScript中从setTimeout与setInterval到AJAX异步

    在JavaScript中,setTimeout和setInterval是两种常见的定时器函数,用于实现异步操作。JavaScript作为单线程语言,其主线程的执行是顺序的,但是在处理某些操作,如延时任务或者周期任务时,会借助事件循环机制和回...

    javascript setTimeout和setInterval 的区别

    JavaScript中的`setTimeout`和`setInterval`是两个重要的定时器函数,它们都属于全局`window`对象的方法,常用于在指定的时间后执行某段代码或周期性地重复执行某段代码。然而,它们的工作机制和用途有所不同。 1. ...

    JavaScript中SetInterval与setTimeout的用法详解

    注:调用过程中,可以使用clearTimeout(id_of_settimeout)终止 参数 描述 code 必需,要调用的函数后要执行的 JavaScript 代码串。 millisec 必需,在执行代码前需等待的毫秒数。 setTimeinterval ...

Global site tag (gtag.js) - Google Analytics