实例讲解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 相关文章推荐
Prototype使用指南之array.js
Jan 10 Javascript
提高网站信任度的技巧
Oct 17 Javascript
Javascript中封装window.open解决不兼容问题
Sep 28 Javascript
使用JavaScript的AngularJS库编写hello world的方法
Jun 23 Javascript
关于数据与后端进行交流匹配(点亮星星)
Aug 03 Javascript
jQuery实现大图轮播
Feb 13 Javascript
node使用UEditor富文本编辑器的方法实例
Jul 11 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
Jul 18 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
Aug 29 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
Feb 26 Javascript
从表单校验看JavaScript策略模式的使用详解
Oct 17 Javascript
vue中data改变后让视图同步更新的方法
Mar 29 Vue.js
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
PHP中使用TCPDF生成PDF文档实例
2014/07/01 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
2016/06/13 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
python通过zabbix api获取主机
2018/09/17 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
python科学计算之narray对象用法
2019/11/25 Python
Pytorch的mean和std调查实例
2020/01/02 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
意大利婴儿产品网上商店:Mukako
2018/10/14 全球购物
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
机械专业应届生求职信
2013/09/21 职场文书
八年级音乐教学反思
2014/01/09 职场文书
主持人演讲稿
2014/05/13 职场文书
岗位明星事迹材料
2014/05/18 职场文书
内科护士节演讲稿
2014/09/11 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
Python机器学习之基础概述
2021/05/19 Python
Mysql忘记密码解决方法
2022/02/12 MySQL