实例讲解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 form表单提交插件asp.net后台中文解码
Jun 12 Javascript
javascript中的self和this用法小结
Feb 08 Javascript
Javascript写入txt和读取txt文件示例
Feb 12 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
May 13 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
Oct 26 Javascript
深入浅析Bootstrap列表组组件
May 03 Javascript
socket.io学习教程之基本应用(二)
Apr 29 Javascript
vue.js全局API之nextTick全面解析
Jul 07 Javascript
浅谈angular4 ng-content 中隐藏的内容
Aug 18 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
May 14 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
Sep 28 Javascript
js瀑布流布局的实现
Jun 28 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学习之PHP表达式
2006/10/09 PHP
PHP远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
php 分页原理详解
2009/08/21 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
python去除字符串中的换行符
2017/10/11 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
.NET常见笔试题集
2012/12/01 面试题
11月红领巾广播稿
2014/01/17 职场文书
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
艺术节主持词
2014/04/02 职场文书
个人授权委托书
2014/04/03 职场文书
村居抓节水倡议书
2014/05/19 职场文书
英语教师自荐信
2014/05/26 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书