网页定时器setTimeout( )

摘要:
默认情况下,重复执行的setTimeout()setTimeout)只执行一次,但我们可以使用循环模式使一个setTimeout再次启动,这将使第二个setTimeout()执行,第二个启动第三个。如果此循环继续,setTimeout()将继续执行。使用上述方法设置时间。虽然setTimeout()设置为1秒,但浏览器还有两个其他函数要执行,因此一个周期的时间略多于1秒。例如,每分钟可能只有58个循环。

不斷重複執行的 setTimeout( )

setTimeout( ) 預設只是執行一次, 但我們可以使用一個循環方式, 使到一個setTimeout( ) 再啟動自己一次, 就會使到第二個 setTimeout( ) 執行, 第二個又啟動第三個, 這樣循環下去, 這setTimeout( ) 就會不斷執行。

練習-71 自動每秒加 1 的 function

在這練習, 你看到如何使用 setTimeout( ) 令文字框的數值每秒就加 1, 當然你也可以設定其他遞增的速度, 例如每五秒就加 5, 或每五秒就加 1。

1. 請用瀏覽器開啟示範磁碟中的 timeout3.htm, 這檔案有以下內容:

<html> <head>
<script>
x =
0
function
countSecond( )
{ x = x+1
document.fm.
displayBox.value=x
setTimeout("
countSecond( )", 1000)
}
</script> </head>
<body bgcolor=lightcyan text=red> <p> </br>
<form name=
fm>
<input type="text" name="
displayBox" value="0" size=4 >
</form>
<script>
countSecond( )
</script>
</body> </html>

2. 網頁開啟後, 請你留意文字框中的數值轉變。

3. 請你將這檔案複製去硬碟, 更改一些設定, 例如 x = x+5, 或將等候時間改為5000, 看有什麼反應

1. 這網頁有兩個 script, 第一個是設定countSecond( ) 這個 function, 第二個在後的是在網頁完全載入後, 就啟動這 function。

2. 留意今次以下的設定:

function countSecond( )
{
x = x+1
document.
fm.displayBox.value = x
setTimeout("
countSecond( )", 1000)
}

countSecond( ) 啟動後, 就會啟動 setTimeout( ), 這個 method 在一秒後又啟動 countSecond( ), countSecond( ) 啟動後又啟動 setTimeout( ) , 所以得出的結果是 countSecond( ) 每秒執行一次。

3. 在 JavaScript, 我們是使用這處說的方法使到一些事項不斷執行, 其中一個用途是顯示轉動時間, 另一個用途是設定跑動文字, 隨後的章節會有例子。

用上述的方法設定時間, setTimeout( ) 雖然設定了是一秒, 但瀏覽器還有另外兩項功能要執行, 所以一個循環的時間是稍多於一秒, 例如一分鐘可能只有58 個循環。

4. 設定條件使 setTimeout( ) 停止

setTimeout( ) 的迴圈開始後, 就會不斷重複, 在上個練習, 你看到文字框的數字不斷跳動, 但我們是有方法使到數字跳到某一個數值就停下來, 其中一個方法是用 if...else 設定一個條件, 若是 TRUE 就繼續執行 setTimeout( ) , 若是 FALSE 就停止。

例如要使到上個練習的 counter 跳到 20 就停下, 可將有關的 function 作以下的更改。

function countSecond( )
{ if (
x < 20 )
{
x = x + 1
document.
displaySec.displayBox.value = x
setTimeout("
countSecond( )", 1000)
    }
}

来自http://blog.csdn.net/zhengzhichen/article/details/3079943#t3

免责声明:文章转载自《网页定时器setTimeout( )》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Win下Eclipse + MinGW + Qt安装及设置ubuntu中下运行asp.net程序下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS开发-Runloop详解(简书)

不知道大家有没有想过这个问题,一个应用开始运行以后放在那里,如果不对它进行任何操作,这个应用就像静止了一样,不会自发的有任何动作发生,但是如果我们点击界面上的一个按钮,这个时候就会有对应的按钮响应事件发生。给我们的感觉就像应用一直处于随时待命的状态,在没人操作的时候它一直在休息,在让它干活的时候,它就能立刻响应。其实,这就是run loop的功劳。 一、线...

Linux内核学习笔记八——定时器和时间管理

一 内核中的时间观念内核在硬件的帮助下计算和管理时间。硬件为内核提供一个系统定时器用以计算流逝的时间。系 统定时器以某种频率自行触发,产生时钟中断,进入内核时钟中断处理程序中进行处理。 墙上时间和系统运行时间根据时钟间隔来计算。 利用时间中断周期执行的工作: 更新系统运行时间; 更新实际时间; 在smp系统上,均衡调度程序中各处理器上运行队列; 检查当前进...

STM32——timer

原文地址: http://blog.sina.com.cn/s/blog_49cb42490100s6ud.html   1.     STM32的Timer简介 STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick,看门狗定时器以...

ucos(八)软件定时器

一、概述   内核提供了一个模拟定时器的机制,类似于任务,但是占用资源少,只能做一些简单的定时控制,如可以定时的喂狗、控灯。在软件定时器,不能添加时间管理函数、阻塞等待函数(等待互斥锁/信号量/事件标志组/消息队列)。 1.创建软件定时器 void OSTmrCreate (OS_TMR *p_tmr, CPU_CHAR *p_name, OS_TIC...

stm32基本定时器timer6的原理与使用

/********************基本定时器 TIM 参数定义,只限 TIM6、7************/ /* 一、定时器分类 STM32F1 系列中,除了互联型的产品,共有 8 个定时器,分为基本定时器,通用定时器和高级定时器。基本定时器 TIM6 和 TIM7 是一个 16 位的只能向上计数的定时器,只能定时,没有外部 IO。通用定...

android studio定时器

1.超时 CountDownTimer第一个参数超时时间,第二个参数多久执行一次onTick(), 到达设定的超时时间执行onFinsh(),cancel取消超时计数,start重新开始(从零开始)。 private CountDownTimer afterRunTimer=new CountDownTimer(2000,2000) {...