js setInterval怎么设置执行次数
settimeout(执行函数,时间)能满足你的要求,setinterval(执行函数,时间)不行。
因为settimeout只运行一次而setinterval多次运行,每次timeout后再调用一次自己也就达到了多次运行的效果,并且每次调用的时间间隔可以不一样
如
var
timer=1000;//这里定义一个全局变量,其它地方可能修改它
t=function(){
//your
code
here
//do
something
timer+=10;//在这修改timer,当然,你在外面修改的话就把这个注释掉
settimeout(t,timer);//再次调用
}
settimeout(t,timer);//全局调用一次。
js 中 setInterval的执行次数问题
虽然是老问题了,但是好像没看到有人解释一下为什么出错,上来给大家补一个
setInterval被包含在Interval所调用的函数里了,这就意味着每次循环,都会再启动一个Interval
也就是说,第一次的循环
timeDao–;
计数100 – 1 = 99
并且添加一个新的循环 (当前有 2 个循环进程)
第二次循环
99 – 1 = 98
98 – 1 = 97
并且两个现有循环各添加一个新的循环(当前有 4 个循环进程)
第三次循环
97 – 1 = 96
96 – 1 = 95
95 – 1 = 94
94 – 1 = 93
… (不用再往下写了,相信已经说明了问题)
以下为修改代码:
《script type=“text/javascript“》
var sh = null; // 时钟对象
var timeDao = 100; // 计数器
// FUNCTION :: dao ()
// 计数递减函数
function dao () {
divD.innerText = timeDao;
if(timeDao == 0) {
if (sh != null) clearInterval(sh);
sh = null;
return;
}
timeDao–;
}
// FUNCTION :: startsh ()
// 启动计时器
function startsh () {
sh = setInterval(“dao()“, 1000);
}
《/script》
《div id=“divD“ onclick=“startsh()“》sdfa《/div》
js中用setInterval会影响页面的性能吗
有一定影响的,加载速度会慢。js过多既延长了用户的等待时间,又大量消耗cpu。而且放在页面的前面的话,会影响页面渲染造成用户体验很差,用户会感觉东西迟迟没有出来 。最好压缩一下js或者把多个 js 文件合成一个,尽量减少客户端与服务器的交互。
js setinterval 中的时间参数为0
-
setInterval 和 setTimeout 都是异步执行的,当你需要一段代码是异步执行的时候使用他们,不过使用setTimeout比较多,如果没有要求延时多久执行的话,时间参数可以设置为0;
-
还有一种情况是当你循环体中需要动态地获取 DOM 元素的时候,如果使用 for 或 while 循环的话,每个循环获取到的 DOM 都是一样的;这时你就需要使用 setInterval来代表循环了,这个时间参数也可以设置为 0