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();