JavaScript中定时调用函数 test()如何写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript中定时调用函数 test()如何写相关的知识,希望对你有一定的参考价值。

javascript中定时调用函数 test()如何写

setTimeout("test()",1000):经过给定时间执行一次
setInterval("test()",1000):每经过给定时间执行一次
时间单位都是毫秒
setTimeout也可以用来实现在一个固定时间段之后反复执行:
function test()
//你的逻辑处理
setTimeout("test()",1000);

这2种方法的区别就是:
setTimeout肯定是执行你的逻辑后再经过固定时间再去执行,是单进程的,不会对公有数据有互相影响
setInterval是每经过固定时间就执行一次,而不管前一次方法是否已经完成,是多进程的,在修改共有数据时可能会出错
参考技术A <html>
<head>
</head>
<body>
<script>
window.onload=doFixed();

function doFixed()
var date = new Date();//现在时刻
var doDate = new Date();//执行时刻
//设置执行时刻的具体时间,示例为打开页面2秒后
doDate.setFullYear(date.getFullYear());//4位数字,年
doDate.setMonth(date.getMonth());//0-11,月份
doDate.setDate(date.getDate())//1-31,天
doDate.setHours(date.getHours());//0-23,小时
doDate.setMinutes(date.getMinutes());//0-59,分钟
doDate.setSeconds(date.getSeconds() + 2);//0-59,秒

setTimeout("doContext();",doDate-date);//设置执行时刻-现在时刻之后执行

function doContext()
alert("2s later");

</script>
</body>
</html>

这个是固定某个时刻执行。

如果是经过固定时间之后执行 直接用setTimeout,参数1为执行的函数,参数2为延迟的时间,单位为毫秒。

setTimeout("doContext();",5*1000);//5秒钟后执行

如果每隔固定时间执行一次(重复),用setInterval

setInterval("doContext();",5*1000);//每隔5秒执行一次

参考技术B //每一秒钟调用一次,最多100次会被清理掉
var maxCount = 100;
var curCount = 0;
var interval = window.setInterval(function()
    curCount++; 
    console.log("curCount="+curCount);
    if(curCount == maxCount ) 
        window.clearInterval(interval );
        return;
    
,1000);

//延迟一秒再调用
var timeout = window.setTimeout(function()
    console.log("已经过1秒,程序开始运行,运行完后死翘翘。");
    window.clearTimeout(timeout );
,1000);

参考技术C setTimeout(test(),5000);
像上面这样直接调好像不行
//-----------------------------------------------------------
<html>
<head>
<script type="text/javascript">
function timedMsg()

var t=setInterval(function test()
alert('5 秒!');
,5000);

</script>
</head>

<body>
<form>
<input type="button" value="显示定时的警告框" onClick = "timedMsg()">
</form>
<p>请点击上面的按钮。警告框会在 5 秒后显示。</p>
</body>

</html>
//----------------------------------------------------------------------
这样把方法写进去可以实现!!!

如果你的方法是js的方法就像上面那样调用,
如果是调用后台的方法就要用到dwr
注:上面的回答是基于java web方面的开发。
参考技术D setTimeout('test()',10000)//10秒后执行test方法,只执行一次
setInterval('test()',10000)//每10秒执行一次test方法,循环执行

javascript函数怎么自己调用自己啊?

为什么我这么自我调用不起效果啊???????

自己调用自己的函数叫做递归函数,递归函数是在程序中函数直接或间接调用自己。

工具原料:编辑器、浏览器

1、简单的JavaScript递归代码示例如下:

function test(num)
    if(num <= 1)
        return 1;
    else
        return num * test(num-1);
    

var a = test;
console.log(a(6)); // 1

2、运行的结果如下:

参考技术A 自己调用自己,就是递归

var i = 0;
function asd () 
    i++;
    if (i == 3) return;
    asd();

asd();
alert(i);

追问

什么叫递归啊 我那么写哪里不对啊 麻烦解释下 我新手 谢谢

以上是关于JavaScript中定时调用函数 test()如何写的主要内容,如果未能解决你的问题,请参考以下文章

javascript(定时函数)

前端(十三)—— JavaScript高级:回调函数闭包循环绑定面向对象定时器

javascript函数怎么自己调用自己啊?

JavaScript 定时器

JavaScript定时器

019_linux驱动之_定时器的引入