实例讲解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 相关文章推荐
文本链接逐个出现的js脚本
Dec 12 Javascript
javascript eval和JSON之间的联系
Dec 31 Javascript
JavaScript中的面向对象介绍
Jun 30 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
Jun 17 Javascript
jQuery EasyUI 入门必看
Jun 03 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
May 30 Javascript
AngularJS select设置默认值的实现方法
Aug 25 Javascript
一步步教你利用Docker设置Node.js
Nov 20 Javascript
JavaScript变量提升和严格模式实例分析
Jan 27 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
Oct 24 Javascript
BootStrap前端框架使用方法详解
Feb 26 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设计模式 Facade(外观模式)
2011/06/26 PHP
初品cakephp 入门基础
2012/02/16 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
PHP6新特性分析
2016/03/03 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
JavaScript prototype属性使用说明
2010/05/13 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
layui的select联动实现代码
2019/09/28 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python 文件处理注意事项总结
2017/04/10 Python
python处理csv中的空值方法
2018/06/22 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
三八妇女节活动主持词
2014/03/17 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书