首页>前端>正文

JS定时器的分类、设置与清除_上海前端培训

时间:2018-05-21 21:07:26   来源:上海尚学堂   阅读:
 欢迎点击查看尚学堂web前端第一阶段视频教程

1、分类

JS的定时器有两种:

setInterval(code,millisec[,"lang"])
按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到clearInterval() 函数被调用或窗口被关闭,由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

setTimeout(code,millisec)
在指定的毫秒数后调用函数或计算表达式。



2、setInterval(code,millisec[,"lang"]) 

语法

setInterval(code,millisec,lang)
参数 描述
code 必需。要调用的函数或要执行的代码串。
millisec 必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。
lang 可选。 JScript | VBScript | JavaScript

以下实例在每 1000 毫秒执行 clock() 函数。实例中也包含了停止执行的按钮:

<html>
<body>

<input type="text" id="clock" />
<script type="text/javascript">
var int=self.setInterval("clock()",1000);
function clock()
{
var d=new Date();
var t=d.toLocaleTimeString();
document.getElementById("clock").value=t;
}
</script>

<button onclick="int=window.clearInterval(int)">停止</button>

</body>
</html>


3、setTimeout()

语法

setTimeout(code,millisec,lang)
参数 描述
code 必需。要调用的函数后要执行的 JavaScript 代码串。
millisec 必需。在执行代码前需等待的毫秒数。
lang 可选。脚本语言可以是:JScript | VBScript | JavaScript

实例演示如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>上海尚学堂(shsxt.com)</title>
</head>
<body>

<p>点击按钮,在等待 3 秒后弹出 "Hello"。</p>
<button onclick="myFunction()">点我</button>

<script>
function myFunction()
{
    setTimeout(function(){alert("Hello")},3000);
}
</script>

</body>
</html>

4、settimeout和setinterval区别

setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式,记住,次数是一次 
setInterval(表达式,交互时间)则不一样,它从载入后,每隔指定的时间就执行一次表达式 。


5、清除定时器:

window.clearInterval(timer1)和window.clearTimeout(time1);

两种清除方式都可以清除通过setTimeout和setInterval设置的定时器  

(两种方式在设置定时器的时候有区别,清除定时器的时候没有区别),并且参数不仅可以是timer,还可以是其返回值,需要注意的是,定时器即使清除了,其返回值也不会清除,之后设置的定时器的返回值也会在其返回值的基础上继续向后排;


1.循环执行:

var timeid = window.setInterval(“方法名或方法”,“延时”);

window.clearInterval(timeid);

上海尚学堂前端培训  shsxt.com/html5
 
<script type="text/javascript">
  $(document).ready(function(){
    //循环执行,每隔1秒钟执行一次 1000 
    var t1=window.setInterval(refreshCount, 1000);
    function refreshCount() {
      console.log("ready");
    }
    //去掉定时器的方法  
    window.clearInterval(t1);   
 }); 
</script>

2.定时执行:当方法执行完成定时器停止(但是定时器还在,只不过没用了);

var tmid = window.setTimeout(“方法名或方法”, “延时”);

window.clearTimeout(tmid);

<script type="text/javascript">

  $(document).ready(function(){
    //定时执行,5秒后执行
    var t1=window.setTimeout(refreshCount, 1000 * 5);
    function refreshCount() {
      console.log("ready");
    }
    //去掉定时器的方法  
    window.clearTimeout(t1);   
 }); 
</script>

记得在不需要的页面如果有定时器任务一定要先关闭定时器任务,尤其是从定时任务的页面跳转到其他页面时,如果没有及时关闭有可能会多余的请求网络开销,浏览器页面打开缓慢,容易使得浏览器崩溃,我开发的时候就出现过这个情况。

上海尚学堂前端培训编辑整理,部分内容参考:http://www.runoob.com/w3cnote/js-timer.html



分享:0

电话咨询

客服热线服务时间

周一至周五 9:00-21:00

周六至周日 9:00-18:00

咨询电话

021-67690939
15201841284

微信扫一扫