js setTimeout 与 setInterval 以及 for 循环 刷新UI

1. setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式;执行一次;

如果需要执行多次,自身再次调用 setTimeout();

示例:无穷循环并带停止按钮的

<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="开始计时!" onClick="timedCount()">
<input type="text" id="txt">
<input type="button" value="停止计时!" onClick="stopCount()">
</form>

<p>
请点击上面的“开始计时”按钮。输入框会从 0 开始一直进行计时。点击“停止计时”可停止计时。
</p>

</body>

</html>

2. setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式;

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

示例:

<html>
<body>

<input type="text" id="clock" size="35" />
<script language=javascript>
var int=self.setInterval("clock()",50)
function clock()
  {
  var t=new Date()
  document.getElementById("clock").value=t
  }
</script>
<button onclick="int=window.clearInterval(int)">Stop interval</button>

</body>
</html>

二:扩展

1. 使用 setTimeout 和 setInterval 不会阻塞js网页的单线程页面操作;比如用js 改变页面的图片或,页面上的文字;

通常使用 for 循环 会影响页面的操作;

        function test()
        {
            //假如 /tmp/ 目录下有4张图片,分别是 test0-3.png
            //如下js 改变 id为 testIMG 的图片;
            for(var i=0;i<4;i++)
            {
                alert(i);
                document.getElementById("testIMG".src="/tmp/test"+String(i)+".png";
            }

            //运行结果,在网页上,会依次弹出 4次 alert;但是图片不会依次切换,而是要等到最后一次,显示最后一张图片;
        }

所以,上面的问题要 使用 setTimeout, setInterval 操作;

2. 还有一点,js 对于 同一个 id 的 img标签;在两次改变图片时,,如果图片的名字一样,,图片不一样,,图片不会改变;

即是 第一次 js 改变图片 为 a.png;

第二次 a.png 图片发生变化了,但是名字还是 a.png;但是此时用js 改变时,页面上的图片不会刷新

参考:http://www.w3school.com.cn/jsref/met_win_settimeout.asp

http://www.w3school.com.cn/jsref/met_win_setinterval.asp

时间: 2024-12-19 10:47:56

js setTimeout 与 setInterval 以及 for 循环 刷新UI的相关文章

js setTimeout 和 setInterval 区别

setTimeout和setInterval的语法相同.它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码.不过这两个函数还是有区别的,setInterval在执行完一次代码之后,经过了那个固定的时间间隔,它还会自动重复执行代码,而setTimeout只执行一次那段代码.区别:var t1 = window.setTimeout("function",time)://设置一个超时对象,只执行一次,无周期 var t2 =

js setTimeOut与setInterval学习

表示一下,小天使在的话确实能给我好多提示.今天的题目是,qq空间刷新一页的时候会有查看更多的按钮,现在的问题是,模拟点击前三次的按钮,即加载三次. 表示两个都是小天使想出来的,不过记录一下,表示学习~~还有一个也是春春帮我改进了. 1, function refresh(){ for(var i=0;i<3;i++){ setTimeOut(update,i*1000); } } function update(){ var button=getElementById('feeds_more_i

js的事件循环机制:同步与异步任务(setTimeout,setInterval)宏任务,微任务(Promise,process.nextTick)

javascript是单线程,一切javascript版的"多线程"都是用单线程模拟出来的,通过事件循环(event loop)实现的异步. javascript事件循环 事件循环中的同步任务,异步任务: 同步和异步任务在不同的执行"场所",同步的进入主线程,异步的进入Event Table执行并注册函数. 当指定的异步事情完成时,Event Table会将这个函数移入Event Queue. 主线程内的任务执行完毕为空,会去Event Queue读取对应的函数,推

JS中的setTimeout和setInterval的区别

学了许久的javascript,发现其中非常常用的两个函数,就是setInterval和setTimeout函数,对这两个函数的理解,有时觉得很模糊,经过多次的试验,终于对它有了比较深入的了解.定义,setInterval()-- 间隔指定的毫秒数不停地执行指定的代码.setTimeout,延迟两秒调用函数,这个定义非常的简单,但是它并不像字面意思上那么的简 很多人都觉得这两个方法差不多,但是,实际上,他们差的很远呢     因为setTimeout(表达式,延时时间)在执行时,是在载入后延迟指

js中setTimeout与setInterval

setTimeout和setInterval javascript都是以单线程的方式运行于浏览器的javascript引擎中的, setTimeout和setInterval的作用只是把你要执行的代码在你设定的一个时间点插入js引擎维护的一个代码队列中 以下方法都是window对象的方法: setTimeout() 和 clearTimeout() setInterval() 和 clearInterval() 一.使用时注意作用域 如果需要在对象内部用定时器执行该对象的某一方法时就需要注意了

js 中setTimeout和setInterval的使用

这两个方法都可以用来实现在一个固定时间段之后去执行JavaScript.不过两者各有各的应用场景. 方 法 实际上,setTimeout和setInterval的语法相同.它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码. 不过这两个函数还是有区别的,setInterval在执行完一次代码之后,经过了那个固定的时间间隔,它还会自动重复执行代码,而setTimeout只执行一次那段代码. 虽然表面上看来setTimeout只能应用

js 定时器用法详解——setTimeout()、setInterval()、clearTimeout()、clearInterval()

  在js应用中,定时器的作用就是可以设定当到达一个时间来执行一个函数,或者每隔几秒重复执行某段函数.这里面涉及到了三个函数方法:setInterval().setTimeout().clearInterval(),本文将围绕这三种函数的用法,来实现定时器的功能,需要的朋友可以过来参考下,喜欢的可以点波赞,或者关注一下本人,希望对大家有所帮助. 定时器的应用需求: 1.设定一个时间,当时间到达的时候执行函数----比如:倒计时跳转页面等等. 2.每隔一段时间重复执行某段函数----比如抢票软件,

js中两种定时器,setTimeout和setInterval的区别

setTimeout只在指定时间后执行一次,代码如下: <script> //定时器 异步运行 function hello(){ alert("hello"); } //使用方法名字执行方法 var t1 = window.setTimeout(hello,1000); var t2 = window.setTimeout("hello()",3000);//使用字符串执行方法 window.clearTimeout(t1);//去掉定时器 </

js定时器window.setTimeout和setInterval

window.setTimeout(function(){                            document.getElementById("editorindex").contentWindow.setContent(data.content); //调用iframe里的setContent()方法                         },800); setTimeout 和setInterval的功能都是经过某一个时间段后发生某件指定的事件或者方法