实例讲解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 相关文章推荐
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
Aug 15 Javascript
Jquery+JSon 无刷新分页实现代码
Apr 01 Javascript
Ajax同步与异步传输的示例代码
Nov 21 Javascript
js数组中如何随机取出一个值
Jun 13 Javascript
JavaScript实现生成GUID(全局统一标识符)
Sep 05 Javascript
js实现对ajax请求面向对象的封装
Jan 08 Javascript
javascript的列表切换【实现代码】
May 03 Javascript
原生JS实现图片网格式渐显、渐隐效果
Jun 05 Javascript
20个必会的JavaScript面试题(小结)
Jul 02 Javascript
Vue中点击active并第一个默认选中功能的实现
Feb 24 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
Oct 27 Javascript
通过实例解析javascript Date对象属性及方法
Nov 04 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
PHP自定义函数收代码
2010/08/01 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
asm.js使用示例代码
2013/11/28 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
Python中的装饰器用法详解
2015/01/14 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
使用Python来开发微信功能
2018/06/13 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
学生党员思想汇报范文
2014/01/09 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
职工年度考核评语
2014/12/31 职场文书
狮子林导游词
2015/02/03 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
2015小学音乐教师个人工作总结
2015/07/21 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android