实例讲解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 相关文章推荐
jQuery 借助插件Lavalamp实现导航条动态美化效果
Sep 27 Javascript
如何学习Javascript入门指导
Nov 01 Javascript
jQuery结合ajax实现动态加载文本内容
May 19 Javascript
JavaScript清空数组元素的两种方法简单比较
Jul 10 Javascript
javascript比较两个日期相差天数的方法
Jul 23 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
Dec 12 Javascript
JS实现新建文件夹功能
Jun 17 Javascript
Node批量爬取头条视频并保存方法
Sep 20 Javascript
Vue中实现权限控制的方法示例
Jun 07 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
Jul 30 Javascript
Vue的Options用法说明
Aug 14 Javascript
Vue中使用wangeditor富文本编辑的问题
Feb 07 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开发规范手册之PHP代码规范详解
2011/01/13 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
angularJS开发注意事项
2018/05/26 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
python 文件查找及内容匹配方法
2018/10/25 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
django 模型字段设置默认值代码
2020/07/15 Python
python 利用toapi库自动生成api
2020/10/19 Python
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
linux面试题参考答案(11)
2016/11/26 面试题
团组织关系介绍信
2014/01/12 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
幼儿园教师求职信
2015/03/20 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
教师远程培训心得体会
2016/01/09 职场文书