实例讲解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与Ajax调用新浪API获取短网址的代码
Feb 07 Javascript
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
js实现的点击div区域外隐藏div区域
Jun 30 Javascript
React.js入门实例教程之创建hello world 的5种方式
May 11 Javascript
JavaScript省市级联下拉菜单实例
Feb 14 Javascript
Express + Node.js实现登录拦截器的实例代码
Jul 01 Javascript
在Vue中使用Compass的方法
Mar 02 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
Nov 01 Javascript
JS实现给数组对象排序的方法分析
Jun 24 Javascript
Vue实现数据请求拦截
Oct 23 Javascript
jquery实现的放大镜效果示例
Feb 24 jQuery
Vue基本指令实例图文讲解
Feb 25 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
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
php下intval()和(int)转换使用与区别
2008/07/18 PHP
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
python的构建工具setup.py的方法使用示例
2017/10/23 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
python中open函数的基本用法示例
2019/09/07 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
个人实习生的自我评价
2014/02/16 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers