settimeout()(settimeout需要清除吗)

http://www.itjxue.com  2023-01-25 19:41  来源:未知  点击次数: 

setTimeout()和setInterval()方法的区别?

因为setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式,记住,次数是一次

而setInterval(表达式,交互时间)则不一样,它从载入后,每隔指定的时间就执行一次表达式

所以,完全是不一样的

很多人习惯于将setTimeout包含于被执行函数中,然后在函数外再次使用setTimeout来达到定时执行的目的

这样,函数外的setTimeout在执行函数时再次触发setTimeout从而形成周而复始的定时效果

使用的时候各有各的优势,使用setInterval,需要手动的停止tick触发。而使用方法中嵌套setTimeout,可以根据方法内部本身的逻辑不再调用setTimeout就等于停止了触发。

其实两个东西完全可以相互模拟,具体使用那个,看当时的需要而定了。就像for可以模拟所有的循环包括分支,而还提供了do、while一样。

//每60秒执行myFunction()一次

setInterval("myFunction()",60000);

funcition myFunction(){

alert(’myFunction()’);

}

//每60秒执行一次myFunction()

setTimeout("myFunction()",60000); //需要函数触发

//如 放置在 body 的 onload事件里面

setTimeout函数问题

首先,setTimeout是可以取消的,可以不让其永远不终止,方法如下:

var?timer?=?null;

function?f(){

????alert("k");

????timer?=?setTimeout(f,1000);

}

//?在另外一个函数中,在某种条件下,取消之前的定时器

clearTimeout(timer);

这样,timer就不再执行了,也就不会再次调用函数f,生成新的定时器。

其次,关于内存,js类似于java有垃圾回收机制,一些不会再次用到的变量等,会被清理。只要是作用域不逃出函数f的,函数f执行完毕后,js总是有办法将其销毁,当然不一定百分百销毁。这样的话,内存怎么会越来越多呢?只有函数f在执行的时候会多一些,但随即又会被清理的。

最后,即便没有clearTimeout,在浏览器关闭的时候,一切都会消失的。

要提醒的是,如果函数f里在不停的创建对象,而且在函数f执行完毕后,这些对象又是被引用的,确实会有内存被越来越多的占用。

setTimeout用法

setTimeout('test();',1000); 等同于setTimeout(“test();”,1000);

javascript单引号与双引号可以通用,用来括起字符串。

你写的这一句

setTimeout("‘Test("+num1+",'"+ster+"');’",200);

确实错了。本来是要执行Test()函数,变成执行字符串“Test(...)”了

(责任编辑:IT教学网)

更多