您当前的位置 :首页 > 学习资料 > js定时器(执行一次、重复执行)
投稿

js定时器(执行一次、重复执行)

2021-03-21 23:45:49 来源: 作者: 责任编辑:cncml

1,只执行一次的定时器
  1. <script>
  2. //定时器 异步运行
  3. function hello(){
  4. alert("hello");
  5. }
  6. //使用方法名字执行方法
  7. var t1 = window.setTimeout(hello,1000);
  8. var t2 = window.setTimeout("hello()",3000);//使用字符串执行方法
  9. window.clearTimeout(t1);//去掉定时器
  10. </script>
复制代码
2,重复执行的定时器
  1. <script>
  2. function hello(){
  3. alert("hello");
  4. }
  5. //重复执行某个方法
  6. var t1 = window.setInterval(hello,1000);
  7. var t2 = window.setInterval("hello()",3000);
  8. //去掉定时器的方法
  9. window.clearInterval(t1);
  10. </script>
复制代码
备注:

如果在一个页面中有两个方法,都是在页面加载完成之后执行的,实际却未能按先后顺序执行,可以参照如下方法解决:
可以在onload方法中添加一个定时器,设置一个定时器,“延迟”一段时间之后再运行,即可认为区分页面加载运行方法的先后顺序。
 

在javascritp中,有两个关于定时器的专用函数,分别为:

1.倒计定时器:timename=setTimeout("function();",delaytime);
2.循环定时器:timename=setInterval("function();",delaytime);

第一个参数“function()”是定时器触发时要执行的动作,可以是一个函数,也可以是几个函数,函数间用“;”隔开即可。比如要弹出两个警告窗口,便可将“function();”换成
“alert('第一个警告窗口!');alert('第二个警告窗口!');”;而第二个参数“delaytime”则是间隔的时间,以毫秒为单位,即填写“5000”,就表示5秒钟。
  倒计时定时器是在指定时间到达后触发事件,而循环定时器就是在间隔时间到来时反复触发事件,两者的区别在于:前者只是作用一次,而后者则不停地作用。
比如你打开一个页面后,想间隔几秒自动跳转到另一个页面,则你就需要采用倒计定时器“setTimeout("function();",delaytime)” ,而如果想将某一句话设置成一个一个字的出现,
则需要用到循环定时器“setInterval("function();",delaytime)” 。

获取表单的焦点,则用到document.activeElement.id。利用if来判断document.activeElement.id和表单的ID是否相同。
比如:if ("mid" == document.activeElement.id) {alert();},"mid"便是表单对应的ID。

定时器:

用以指定在一段特定的时间后执行某段程序。

JS中定时执行,setTimeout和setInterval的区别,以及l解除方法

setTimeout(Expression,DelayTime),在DelayTime过后,将执行一次Expression,setTimeout 运用在延迟一段时间,再进行某项操作。
setTimeout("function",time) 设置一个超时对象

setInterval(expression,delayTime),每个DelayTime,都将执行Expression.常常可用于刷新表达式.
setInterval("function",time) 设置一个超时对象

SetInterval为自动重复,setTimeout不会重复。

clearTimeout(对象) 清除已设置的setTimeout对象
clearInterval(对象) 清除已设置的setInterval对象

略举两例。
例1.表单触发或加载时,逐字输出字符串

 
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  4. <title>无标题文档</title>
  5. <script language="JavaScript" type="text/javascript">
  6. var str = "这个是测试用的范例文字";
  7. var seq = 0;
  8. var second=1000; //间隔时间1秒钟
  9. function scroll() {
  10. msg = str.substring(0, seq+1);
  11. document.getElementByIdx_x_x('word').innerHTML = msg;
  12. seq++;
  13. if (seq >= str.length) seq = 0;
  14. }
  15. </script>
  16. </head>
  17. <body onload="setInterval('scroll()',second)">
  18. <div id="word"></div><br/><br/>
  19. </body>
  20. </html>
复制代码
例2.当焦点在输入框的时候,定时检查输入框信息,焦点不在时不执行检查动作。
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title>无标题文档</title>
  6. <script language="JavaScript" type="text/javascript">
  7. var second=5000; //间隔时间5秒钟
  8. var c=0;
  9. function scroll() {
  10. c++;
  11. if ("b" == document.activeElement.id) {
  12. var str="定时检查第<b> "+c+" </b>次<br/>";
  13. if(document.getElementByIdx_x_x('b').value!=""){
  14. str+="输入框当前内容为当前内容为<br/><b> "+document.getElementByIdx_x_x('b').value+"</b>";
  15. }
  16. document.getElementByIdx_x_x('word').innerHTML = str;
  17. }
  18. }
  19. </script>
  20. </head>
  21. <body>
  22. <textarea id="b" name="b" style="height:100px; width:300px;" onfocus="setInterval('scroll()',second)"></textarea><br/><br/>
  23. <div id="word"></div><br/><br/>
  24. </body>
  25. </html>
复制代码
例3.下面这个是最简单的例子,定时器时间到达后弹出警告窗口。
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  4. <script language="javascript">
  5. function count() {
  6. document.getElementByIdx_x_x('m').innerHTML="计时已经开始!";
  7. setTimeout("alert('十秒钟到!')",10000)
  8. }
  9. </script>
  10. <body>
  11. <div id="m"></div>
  12. <input TYPE="button" value=" 计时开始" onclick="count()">
  13. </body>
  14. </html>
复制代码
例4:倒计时定时跳转
  1. <html>
  2. <head>
  3.   <base href="<%=basePath%>">
  4.   <title>My JSP 'ds04.jsp' starting page</title>
  5.   <span id="tiao">3</span>
  6.   <a href="javascript:countDown"> </a>秒后自动跳转……
  7.   <meta http-equiv=refresh content=3;url= '/ds02.jsp'/>
  8.   <!--脚本开始-->
  9.   <script language="javascript" type="">
  10. function countDown(secs){
  11. tiao.innerText=secs;
  12. if(--secs>0)
  13.   setTimeout("countDown("+secs+")",1000);
  14. }
  15. countDown(3);
  16. </script>
  17.   <!--脚本结束-->
  18. </head>
复制代码
例6:
  1. <head>
  2.     <meta http-equiv="refresh" content="2;url='b.html'">
  3. </head>
复制代码
例7:
  1. <script language="javascript" type="text/javascript">
  2. setTimeout("window.location.href='b.html'", 2000);
  3. //下面两个都可以用
  4. //setTimeout("javascript:location.href='b.html'", 2000);
  5. //setTimeout("window.location='b.html'", 2000);
  6. </script>
复制代码
例8:
  1. <span id="totalSecond">2</span>
  2. <script language="javascript" type="text/javascript">
  3. var second = document.getElementByIdx_x('totalSecond').innerHTML;
  4. if(isNaN(second)){
  5.   //……不是数字的处理方法
  6. }else{
  7.   setInterval(function(){
  8.    document.getElementByIdx_x('totalSecond').innerHTML = --second;
  9.    if (second <= 0) {
  10.     window.location = 'b.html';
  11.    }
  12.   }, 1000);
  13. }
  14. </script>
复制代码


 
 
 
 

文章来源: 责任编辑:cncml
版权声明:
1、本主题所有言论和图片纯属会员个人意见,与本网站立场无关
2、本站所有主题由该文章作者发表,该文章作者与享有文章相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和的同意
4、文章作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、管理员和版主有权不事先通知发贴者而删除本文
不良信息举报信箱 新闻热线:18733599993 技术服务:18733599993 网上投稿
关于本站 | 广告服务 | 免责申明 | 招聘信息 | 联系我们
在线网 版权所有 Copyright(C)2005-2025