1. 程式人生 > >js定時器(執行一次、重複執行)

js定時器(執行一次、重複執行)

1,只執行一次的定時器
<script> 
//定時器 非同步執行 
function hello(){ 
alert("hello"); 
} 
//使用方法名字執行方法 
var t1 = window.setTimeout(hello,1000); 
var t2 = window.setTimeout("hello()",3000);//使用字串執行方法 
window.clearTimeout(t1);//去掉定時器 
</script> 
2,重複執行的定時器
<script> 
function hello(){ 
alert("hello"); 
} 
//重複執行某個方法 
var t1 = window.setInterval(hello,1000); 
var t2 = window.setInterval("hello()",3000); 
//去掉定時器的方法 
window.clearInterval(t1); 
</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.表單觸發或載入時,逐字輸出字串

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文件</title>
<script language="JavaScript" type="text/javascript">
var str = "這個是測試用的範例文字";
var seq = 0;
var second=1000; //間隔時間1秒鐘
function scroll() {
msg = str.substring(0, seq+1);
document.getElementByIdx_x_x('word').innerHTML = msg;
seq++;
if (seq >= str.length) seq = 0;
}
</script>
</head>
<body onload="setInterval('scroll()',second)">
<div id="word"></div><br/><br/>
</body>
</html>

例2.當焦點在輸入框的時候,定時檢查輸入框資訊,焦點不在時不執行檢查動作。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文件</title>
<script language="JavaScript" type="text/javascript">
var second=5000; //間隔時間5秒鐘
var c=0;
function scroll() {
c++;
if ("b" == document.activeElement.id) {
var str="定時檢查第<b> "+c+" </b>次<br/>";
if(document.getElementByIdx_x_x('b').value!=""){
str+="輸入框當前內容為當前內容為<br/><b> "+document.getElementByIdx_x_x('b').value+"</b>";
}
document.getElementByIdx_x_x('word').innerHTML = str;
}
}
</script>
</head>
<body>
<textarea id="b" name="b" style="height:100px; width:300px;" onfocus="setInterval('scroll()',second)"></textarea><br/><br/>
<div id="word"></div><br/><br/>
</body>
</html>

例3.下面這個是最簡單的例子,定時器時間到達後彈出警告視窗。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script language="javascript">
function count() {
document.getElementByIdx_x_x('m').innerHTML="計時已經開始!";
setTimeout("alert('十秒鐘到!')",10000)
}
</script>
<body>
<div id="m"></div>
<input TYPE="button" value=" 計時開始" onclick="count()">
</body>
</html>
例4:倒計時定時跳轉
<html>
<head>
  <base href="<%=basePath%>">
  <title>My JSP 'ds04.jsp' starting page</title>
  <span id="tiao">3</span>
  <a href="javascript:countDown"> </a>秒後自動跳轉……
  <meta http-equiv=refresh content=3;url= '/ds02.jsp'/>
  <!--指令碼開始-->
  <script language="javascript" type="">
function countDown(secs){
 tiao.innerText=secs;
 if(--secs>0)
  setTimeout("countDown("+secs+")",1000);
 }
 countDown(3);
 </script>
  <!--指令碼結束-->
 </head>







相關推薦

js定時(執行重複執行)

1,只執行一次的定時器 <script> //定時器 非同步執行 function hello(){ alert("hello"); } //使用方法名字執行方法 var t1 = window.setTimeout(hello,1000); va

I/O定時_3秒執行_1秒執行

#include <windows.h> #include <stdio.h> //使用CTL_CODE必須加入winioctl.h #include <winioctl.h> #include "..\IO定時器\Ioctls.h" i

top 執行顯示所有程序資訊

1、執行一次 top命令會動態顯示資訊,若需要靜態的,比如只執行一次,或者只需要關於CPU的分析的那幾行,則使用代以下引數的命令: top -n 1 top執行一次,這樣便可以很方便的取出資訊,比如把這個資訊存到一個檔案中。 top -n 1 | head -n 5

這是一個定時,定時執行,用在定時發送郵件

mail pri 創建 sendmail public sta 發送 mes times public static void main(String[] args) { //1. 創建計時器類 Timer timer = new Timer(); //2. 創建任

JS中如何防止AJAX命令重複載入(執行,自動向後臺傳送兩以上的請求)

將程式碼部署在伺服器上後,在提交資料並將資料插入資料庫時,總是在提交後不多時,資料便變成了亂碼。後來發現原來是AJAX在搗鬼。 1、將如下程式碼放在將要傳送AJAX請求的方法前 <!--防止ajax重複載入--> <script> function pre

cron和crontab命令詳解 crontab 每分鐘每小時每天每週每月每年定時執行 crontab每5分鐘執行

cron機制        cron可以讓系統在指定的時間,去執行某個指定的工作,我們可以使用crontab指令來管理cron機制crontab引數        -u:這個引數可以讓我們去編輯其他人的crontab,如果沒有加上這個引數的話就會開啟自己的crontab 

PHP 定時實現 timer 每隔幾秒執行

PHP定時器實現每隔幾秒執行一次,下面寫個簡單例子來講解這個方法。 <?PHP  ignore_user_abort();//關閉瀏覽器仍然執行 set_time_limit(0);//讓程式一直執行下去 $interval=3;//每隔一定時間執行 do{   

linux 定時 PHP定時實現每隔幾秒執行

PHP定時器實現每隔幾秒執行一次,下面寫個簡單例子來講解這個方法。 <?php  ignore_user_abort();//關閉瀏覽器仍然執行 set_time_limit(0);//讓程式一直執行下去 $interval=3;//每隔一定時間執行 do{   

js 定時用法詳解——setTimeout()setInterval()clearTimeout()clearInterval()

ntb 幫助 .get tint num 用法 -c 函數 tel 在js應用中,定時器的作用就是可以設定當到達一個時間來執行一個函數,或者每隔幾秒重復執行某段函數。這裏面涉及到了三個函數方法:setInterval()、setTimeout()、clearI

CentOS7設置定時任務 每隔30分鐘執行命令

定時任務 adding com app normal use ebo pad man 一.安裝 crontabs服務並設置開機自啟:yum install crontabs systemctl enable crond systemctl start crond123二.設

spring定時task為什麼在伺服器上會執行2

spring定時器task為什麼在伺服器上會執行2次 在本地idea執行專案時spring定時器只運行了一次,通過多次測試沒問題後我就把專案部署到伺服器上面,結果在伺服器上spring定時器竟然運行了2次,這我就想不明白了.我肯定程式碼和配置是沒有問題的,想了想難道是伺

重複的資料處理,並只執行

​​​​​平時程式設計師在獲取資料時,經常會遇到獲取到一堆相同的資料,而且一直在重複的執行同一條程式碼;這時我們都會試著插入判斷條件來控制執行程式碼,通過判斷來篩選(重複的資料只執行一次) 比如:in

Quartz Cron表示式 每週每月執行

系統中通常有些需要自動執行的任務,這些任務可能每隔一段時間就要執行一次,也可能需要在指定的時間點自動執行,這些任務的自定執行必須使用任務的自動排程。 JDK為簡單的任務排程提供了Timer支援,單對於更復雜的排程,例如:需要在某的時刻排程任務時,Timer就顯得力不從心

Android每隔2秒執行命令 即定時傳送任務 非Timer方法

public class MainActivity extends Activity { Button ks,js; TextView tv; String date; private Handler handler = new Handler( ); private Runnable ru

分散式環境下定時任務如何做到只執行

問題: 對於一個部署在多臺機器上的應用,程式執行時,如何保證多個機器上的定時任務只有一個機器上的任務被執行? 思路:對於每一個定時任務job都有一個唯一id,當發現改job處於執行狀態時,其他機器都不會去排程這個job quartz的分散式解決方案

quartz定時任務實現只執行,以後不再執行

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schem

js 定時延時和週期

js 定時器有以下兩個方法: setInterval() :按照指定的週期(以毫秒計)來呼叫函式或計算表示式。方法會不停地呼叫函式,直到 clearInterval() 被呼叫或視窗被關閉。setTimeout() :在指定的毫秒數後呼叫函式或計算表示式。setInterv

設定定時任務為每天凌晨2點執行和每小時執行

每天凌晨2點  0 0 2 * * ?和每天隔一小時 0 * */1 * * ?例1:每隔5秒執行一次:*/5 * * * * ?例2:每隔5分執行一次:0 */5 * * * ?在26分、29分、33分執行一次:0 26,29,33 * * * ?例3:每天半夜12點30分

js觸發點選事件,在一定延遲內只執行

$(function(){ var timeoutflag = null; $('#inputAddress1').click(function() { if(t

js定時執行

代碼塊 bsp 事件 scrip 不同 length 崩潰 閉包 所在 第一種:問題請求代表執行打印出來的是什麽? //定時器執行頁面崩潰 var bo = true; setTimeout(function