上一页 首页 下一页

JavaScript高级教程

JavaScript高级教程
JavaScript高级教程 - 第三课
MCHWEB

第四页: 定时循环的做法

要使定时器循环工作你需要写一个函数实现循环调用。这里是
一个例子:

var the_count = 0;
var the_timeout;
function doTimer()
{
	window.document.timer_form.the_text.value = the_count;
	the_count += 2;
	the_timeout = setTimeout("doTimer();", 2000);
}

这里用到的定时器就是上一页所用的定时器。当用户点击按钮
时就调用该函数。该函数将 the_count 的当前值写到文字框中。
然后 the_count 增加2,则开始调用函数自身。文字框中的数值
也相应更新, the_count 在增加2, 则再次调用函数自身。 在等
待的这两秒期间浏览器则可以执行其他的同步工作。the_count

一增加2就执行另一次 setTimeout() 。你不用担心会造成内存
崩溃,因为在给定时间内只有一个 setTimeout() 在执行。

而无限的"while" 循环则会锁定浏览器的工作,在执行该循环
的过程中浏览器不能同时执行别的任何指令。而 setTimeout
可以使循环的间隙中让浏览器执行别的工作。

如何取消 setTimeout

现在你已经学习了如何设置一个无限循环。但是你必须懂得如
何终止循环。其指令就是 clearTimeout 。上例中定时器还有下
面这个表单元素:

<input type="button" value="stop timer"
 onClick="clearTimeout(the_timeout);">

点击这个按钮就可以终止定时器。指令是 clearTimeout() ,其
实很简单,如果你这样设置 setTimeout
the_timeout = setTimeout("some javascript",3000);

你可以这样取消定时器:
clearTimeout(the_timeout);

很简单,对吧?下面我们看一个复杂循环定时器,一个可以报
告时间的定时器。
>>

JavaScript高级教程
第一页 Javascript高级教程 - 第三课
第二页 如何给事件定时
第三页 定时循环的概念
第四页 定时循环的做法
第五页 一个Javascript编写的时钟
第六页 给定时器加入变量
第七页 识别用户的浏览器
第八页 如何识别用户的浏览器
第九页 对象和方法的识别
第十页 History对象

[ 第1课 ][ 第2课 ][第3课][ 第4课 ][ 第5课 ]



上一页 首页 下一页