实例讲解JS中setTimeout()的用法


Posted in Javascript onJanuary 28, 2016

本文实例讲解了JS中setTimeout()的用法,分享给大家供大家参考,具体内容如下

效果图:

实例讲解JS中setTimeout()的用法

具体代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
var timer; //全局变量
var i=0; //变量初始化,全局变量
//定义函数:开始计时
function start()
{
 //获取id=result的对象
 var obj = document.getElementById("result");
 var str = "该程序已经运行了"+i+"秒!";
 i++; //展开 i=i+1
 //将变量str的内容写入到id=result中去
 obj.value = str; //给表单元素加内容,一般用value属性
      //除表单外的其它标记用JS写内容,使用innerHTML
 
 //设置延时器
 timer = window.setTimeout("start()",10);
}
//定义函数:停止计时
function stop()
{
 window.clearTimeout(timer);
}

</script>
</head>

<body>
<input type="button" id="result" value="该程序已经运行了0秒!" /><br />
<input type="button" onclick="start()" value="开始" />
<input type="button" onclick="stop()" value="停止" />
</body>
</html>

下面来说一说具体的用法:

1、参数
code (必需):(本意是代码的意思)要调用的函数后要执行的 JavaScript 代码串。
millisec(必需):在执行代码前需等待的毫秒数。
提示:
setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。
2、实例

<html>
<head>
<scripttype="text/javascript">
functiontimedMsg()
{
vart=
setTimeout("
alert('5seconds!')",5000)
}
</script>
</head>
<body>
<form>
<inputtype="button"
value="Displaytimedalertbox!"onClick="timedMsg()">
</form>
<p>Clickonthebuttonabove.Analertboxwillbedisplayedafter5seconds.</p>
</body>
</html>

3、实例(2)

functionclockon(bgclock){
varnow=newDate();
varyear=now.getFullYear();
varmonth=now.getMonth();
vardate=now.getDate();
varday=now.getDay();
varhour=now.getHours();
varminu=now.getMinutes();
varsec=now.getSeconds();
varweek;
 
month=month+1;
if(month<10)month="0"+month;
if(date<10)date="0"+date;
if(hour<10)hour="0"+hour;
if(minu<10)minu="0"+minu;
if(sec<10)sec="0"+sec;
/*vararr_week=newArray("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
week=arr_week[day];
*/
switch(day){
case1:week="星期一";break;
case2:week="星期二";break;
case3:week="星期三";break;
case4:week="星期四";break;
case5:week="星期五";break;
case6:week="星期六";break;
default:week="星期日";break;
}
vartime="";
time=year+"年"+month+"月"+date+"日"+week+""+hour+":"+minu+":"+sec;
if(document.all){
bgclock.innerHTML="系统公告:["+time+"]"
}
vartimer=
setTimeout("clockon(bgclock)",200);
}

4、执行

我们常常会遇到一种情况,setTimeout(code,millisec)中code包含形参,
例如:我们需要在1秒后向用户提示的信息存储于变量msg中,

var msg='1shaspassed!';

此时不论是直接执行

setTimeout(
alert(msg),1000);//alert(msg)会被立即执行

还是

setTimeout(“alert(msg)”,1000);//系统报错msgisnotdefined(chrome)

都不能达到预期的目的,因为定时器会努力地将code转化为一个function对象,第一个错例里定时器立即执行code希求返回一个function对象,结果扑了空;第二个虽然成功封装出function对象,但是定时器在msg的可见域外执行code,所以msg得不到正确的传递
推荐的解决办法是使用匿名函数回调

var msg='1shaspassed!';
setTimeout(function(){
alert(msg);
},1000);

第一个参数传递了一个会调用所需语句的function对象,这样就解决了code带参的问题。

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 读取元素的CSS信息的代码
Feb 07 Javascript
JS去除数组重复值的五种不同方法
Sep 06 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
May 11 Javascript
node.js中的favicon.ico请求问题处理
Dec 15 Javascript
javascript字符串与数组转换汇总
May 26 Javascript
分享网页检测摇一摇实例代码
Jan 14 Javascript
AngularJS入门教程之XHR和依赖注入详解
Aug 18 Javascript
微信小程序 页面之间传参实例详解
Jan 13 Javascript
微信小程序模拟cookie的实现
Jun 20 Javascript
vue-cli的工程模板与构建工具详解
Sep 27 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
Sep 11 Javascript
vue页面跳转实现页面缓存操作
Jul 22 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
Jan 28 #Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
Jan 28 #Javascript
基于javascript实现动态显示当前系统时间
Jan 28 #Javascript
jQuery实现div随意拖动的实例代码(通用代码)
Jan 28 #Javascript
jQuery+css实现炫目的动态块漂移效果
Jan 28 #Javascript
使用node+vue.js实现SPA应用
Jan 28 #Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
Jan 28 #Javascript
You might like
一个捕获函数输出的函数
2007/02/14 PHP
php设计模式 Visitor 访问者模式
2011/06/28 PHP
一个PHP实现的轻量级简单爬虫
2015/07/08 PHP
php模板引擎技术简单实现
2016/03/15 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
javascript工具库代码
2012/03/29 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
微信小程序动态添加分享数据
2017/06/14 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
python函数与方法的区别总结
2019/06/23 Python
python爬虫 正则表达式解析
2019/09/28 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
老教师工作总结的自我评价
2013/09/27 职场文书
商务英语专业自荐信
2013/10/14 职场文书
小学语文国培感言
2014/03/04 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
Python面向对象编程之类的概念
2021/11/01 Python
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫