您的位置:首页 > 其它

间隔几秒执行某方法

2011-03-26 00:26 162 查看
javascript 间隔5秒执行一个方法

javascript没有类似Thread中的sleep()方法,只能模拟

一个这个方法实现。

function sleep(n){

var start=new Date().getTime();//定义起始时间的

毫秒数

while(true){

var time=new Date().getTime();//每次执行循环取

得一次当前时间的毫秒数

if(time-start>n){//如果当前时间的毫秒数减去起始

时间的毫秒数大于给定的毫秒数,即结束循环

break;

}

}

}

function test(n){//用这个函数测试吧

for(var i=0;i<3;i++){

alert(i);

sleep(5000);//每隔5000毫秒执行一次for循环

}

}

------------------------------

JavaScript 计时事件

通过使用 JavaScript,我们有能力作到在一个设定的时

间间隔之后来执行代码,而不是在函数被调用后立即执行

。我们称之为计时事件。

在 JavaScritp 中使用计时事件是很容易的,两个关键方

法是:

setTimeout()

未来的某时执行代码

clearTimeout()

取消setTimeout()

setTimeout()

语法

var t=setTimeout("javascript语句",毫秒)

setTimeout() 方法会返回某个值。在上面的语句中,值

被储存在名为 t 的变量中。假如你希望取消这个

setTimeout(),你可以使用这个变量名来指定它。

setTimeout() 的第一个参数是含有 JavaScript 语句的

字符串。这个语句可能诸如 "alert('5 seconds!')",或

者对函数的调用,诸如 alertMsg()"。

第二个参数指示从当前起多少毫秒后执行第一个参数。

提示:1000 毫秒等于一秒。

实例

当下面这个例子中的按钮被点击时,一个提示框会在5秒中

后弹出。

<html>

<head>

<script type="text/javascript">

function timedMsg()

{

var t=setTimeout("alert('5 seconds!')",5000)

}

</script>

</head>

<body>

<form>

<input type="button" value="Display timed

alertbox!" onClick="timedMsg()">

</form>

</body>

</html>

实例 - 无穷循环

要创建一个运行于无穷循环中的计时器,我们需要编写一

个函数来调用其自身。在下面的例子中,当按钮被点击后

,输入域便从 0 开始计数。

<html>

<head>

<script type="text/javascript">

var c=0

var t

function timedCount()

{

document.getElementById('txt').value=c

c=c+1

t=setTimeout("timedCount()",1000)

}

</script>

</head>

<body>

<form>

<input type="button" value="Start count!"

onClick="timedCount()">

<input type="text" id="txt">

</form>

</body>

</html>

clearTimeout()

语法

clearTimeout(setTimeout_variable)

实例

下面的例子和上面的无穷循环的例子相似。唯一的不同是

,现在我们添加了一个 "Stop Count!" 按钮来停止这个

计数器:

<html>

<head>

<script type="text/javascript">

var c=0

var t

function timedCount()

{

document.getElementById('txt').value=c

c=c+1

t=setTimeout("timedCount()",1000)

}

function stopCount()

{

clearTimeout(t)

}

</script>

</head>

<body>

<form>

<input type="button" value="Start count!"

onClick="timedCount()">

<input type="text" id="txt">

<input type="button" value="Stop count!"

onClick="stopCount()">

</form>

</body>

</html>

///////////////////

setTimeout("alert('test00000000000')",5000);

//5秒后弹出对话框

setInterval("alert('test')",1000); //每隔1

秒执行函数al

function alert(str)

{

alert(str);

}

------------------------

setInterval(function(){这里面写你要执行的东

西},1000)

--------------

//源程序7.2

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"

"http://www.w3.org/TR/REC-html140/strict.dtd">

<html>

<head>

<meta http-equiv=content-type

content="text/html; charset=gb2312">

<title>Sample Page!</title>

<script language="JavaScript"

type="text/javascript">

<!--

var TimerID;

var dir=1;

var str_num=0;

//用于动态显示的目标字符串

var str="Welcome To JavaScript World!";

//设定动态显示的状态栏信息

function startStatus()

{

var str_space="";

str_num=str_num+1*dir;

if(str_num>30 || str_num<0)

{

dir=-1*dir;

}

for(var i=0;i<str_num;i++)

{

str_space+=" ";

}

window.status=str_space+str;

}

//状态栏滚动开始

function MyStart()

{

TimerID=setInterval("startStatus();",100);

}

//状态栏滚动结束,并更新状态栏

function MyStop()

{

clearInterval(TimerID);

window.status="The Moving Status have been

stopped!";

}

//////////////////////

定时执行代码|延迟执行代码

文章分类:Web前端

Ext Core提供了TaskRunner、TaskMgr和DelayedTask三

个类来执行定时任务,其中TaskMgr是TaskRunner的一个

静态实例。

TaskRunner类的作用是在设置的时间间隔内定时执行指定

任务,其使用方法请看下面代码。

Js代码

var stop = false;

//任务定义

var task = {

run:function(){

if(!stop){

//执行处理

console.log(new Date());

}else{

runner.stop(task); //停止执行

}

},

interval:30000 //单位为毫秒,目前定义时间间隔为

30秒

};

var runner = new Ext.util.TaskRunner();

runner.start(task);

Js代码

//也可以使用TaskMgr类

Ext.TaskMgr.start({

run :function(){

},

interval:1000

} //////////////

// Start a simple clock task that updates a div

once per second

var task = {

run: function(){

Ext.fly('clock').update(new Date

().format('g:i:s A'));

},

interval: 1000 //1 second

}

Ext.TaskMgr.start(task);

-----------------------

stop( Object task ) : Object

Stops an existing running task.

Stops an existing running task.

Parameters:

task : Object

The task to stop

Returns:

Object

The task

这是API文档中的详细说明,你应该知道了吧

yayg (中级程序员) 2009-12-04

// 任务

var task = {

run:function(){

if(count == 0) {

window1.hide();

Ext.TaskMgr.stop(task);// 需要停止的任务对象

}

Ext.getDom('closeDivCount').innerHTML ="<br><br>" + mesage + ", " + count + "秒钟后自动关闭窗口。";

count--;

},

interval:1000

};

Ext.TaskMgr.start(task);

// 如果你不要传入参数的话,可以考虑一下使用TaskRunner里的stopAll:

var runner = new Ext.util.TaskRunner();

runner.start(task);

runner.stop(task);// 需要停止的任务对象

runner.stopAll();// 立即停止当前运行的所有任务

hearken01 (高级程序员) 2009-12-04

Js代码

var task = { //定义一个任务

run: function(){

Ext.fly('clock').update(new Date().format('g:i:s A'));//更新当前时间

},

interval: 1000 //1 秒钟更新一次

}

Ext.TaskMgr.start(task);//开始执行这个任务

Ext.TaskMgr.stop(task);//结束这个任务

//不想传递参数可以用Ext.TaskMgr.stopAll();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: