999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JavaScript的定時事件實現方法的研究

2016-05-30 04:02:55韓蒙蒙李欣
亞太教育 2016年14期

韓蒙蒙 李欣

摘 要:在開發動態網頁和網絡游戲的腳本編寫過程中,經常涉及到間隔循環執行某些任務的情況,我們通常稱為定時事件。setInterval()和setTimeout()兩個方法都可以用于實現定時事件。經過深入研究這兩種定時事件方法,從使用方法到實現效果,對二者進行了分析比較,得出了它們的異同點及適用場景。

關鍵詞:setInterval;setTimeout;定時事件

一、前言

JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基于原型、基于對象的語言,并且它內置支持類型。目前經常被用于Web應用開發中,比如在網頁中加入一些動態的功能,為用戶提供更流暢美觀的瀏覽效果。在瀏覽動態網頁的過程中,我們會看到圖片自動切換,這就用到了JavaScript中的定時事件技術來實現頁面定時自動完成一些操作。

二、定時事件功能通過setInterval()方法實現

通過setInterval()方法可以實現定時事件功能,它的語法如下:

setInterval(參數1,參數2);

其中,參數1是需要執行的代碼字符串,可以是一個函數名;參數2表示的是時間間隔,是以毫秒為單位的,當過了參數2的時間段之后就會執行那段相應的代碼,而且以時間間隔參數2為周期,不停的重復執行代碼。

在下面的例1中,我們通過setInterval()方法來實現每隔1秒鐘重復彈出窗口的效果,執行代碼之后提示框將會每隔1秒自動彈出,直到瀏覽器窗口關閉,或者轉到了另外一個頁面為止。例1代碼如下:

functiontimedMsg(){

var a=setInterval(“alert(‘1 seconds!)”,1000)

}

三、定時事件功能通過setTimeout()方法實現

要實現定時事件功能,除了setInterval()方法,我們還可以用setTimeout()方法。它的語法如下:

setTimeout(參數1,參數2);

這兩個參數的含義和setInterval()方法中的兩個參數含義一樣,實現的功能也是當過了參數2的時間段之后就會執行參數1那段相應的代碼,但是setTimeout()方法不循環執行,只執行一次。

在下面的例2中,點擊按鈕1秒鐘后會彈出一個提示框,只彈出一次,不周期性重復彈出。例2代碼如下:

functiontimedMsg(){

var a=setTimeout(“alert(‘1 seconds!)”,1000)

}

所以,要想用setTimeout()方法來定期重復的執行參數1的代碼,這就需要在執行的代碼中再調用自己,即使用遞歸函數。

接下來,我們使用setTimeout()方法來實現例1中每隔1秒鐘重復彈出窗口的效果,也就是提示框先彈出一次,之后每隔1秒自動彈出,直到瀏覽器窗口關閉,或者轉到了另外一個頁面為止。代碼如下:

functiontimedMsg(){

alert(‘1seconds!);

setTimeout(“timedMsg()”,1000);

}

四、setInterval()方法和setTimeout()方法的相同之處

setTimeout()方法和setInterval()方法的語法是一樣的。它們都包含兩個參數,setInterval(參數1,參數2)和setTimeout(參數1,參數2)中,參數1都是需要執行的代碼字符串,指定了在第二個參數指定的時間間隔中做些什么,可以是一個函數名;參數2都表示的是時間間隔,是以毫秒為單位的,當過了參數2的時間段之后就會執行那段相應的代碼。

1.用setInterval()實現定時事件

vartev;

functioninit(){

tev = setInterval(increase,1000);

}

function increase(){

document.f.sec.value = String(1+Number(document.f.sec.value));

}

function stop(){

clearInterval(tev);

}

2.用setTimeout ()實現定時事件

vartev;

functioninit(){

document.form.sec.value=String(1+Number(document.form.sec.value));

tev1 = setTimeout(“init()”,1000);

}

function stop(){

clearTimeout(tev);

}

五、setInterval()與setTimeout()兩種方法的不同之處

setTimeout(參數1,參數2)方法與setInterval(參數1,參數2)方法都可以作為實現定時事件的方法,但最后實現的效果卻不太相同。其中,setInterval()方法是在執行完參數1事件的代碼之后,經過了參數2所設定的時間間隔之后,還會自動的重復執行參數1所包含事件的代碼,即每隔一定時間間隔去反復執行一個事件;而setTimeout()方法在經過參數2所設定的時間間隔之后,只執行一次那段代碼,即只執行一次事件。但可以通過創建重復循環的方法來調用setTimeout()的函數,來實現自動重復執行事件的操作。

六、總結

通過上述的分析我們可以總結:setTimeout()方法與setInterval()方法都可以用來實現定時事件的效果,但是使用的方法不盡相同。其中,setTimeout()方法需要通過在參數中調用自身才能實現連續不斷的循環的效果,而setInterval()方法則不需要調用自身就可以實現連續循環。而且,這兩種方法實現的定時事件的效果也有一定的差別,我們要根據實際的需求,對兩種方法進行正確分析,最終做出合理的選擇。setTimeout()方法可以保證兩次執行的定時事件之間的延遲時間保持固定值不變,所以如果遇到定時事件中調用了比較復雜、執行時間較長的函數,而又不想在頻繁調用時產生混亂,使用setTimeout()方法比較好;setInterval()方法是按照當初設定的時間周期嚴格執行,所以如果需要比較精確的定時事件,而且事件能在設定的時間間隔內執行完畢,則使用該方法比較合適。

參考文獻:

[1]Jeremy Keith.JavaScript DOM編程藝術[M].北京:人民郵電出版社,2007.

[2]Nicholas C.Zakas.JavaScript高級程序設計[M].北京:人民郵電出版社,2006.

[3]Flanagan.Javascript權威指南[M].北京: 機械工業出版社,2007.

[4]張大富,黃中敏.JavaScript動態網頁編程實例手冊[M].北京:海洋出版社,2005.

(作者單位:河南師范大學)

主站蜘蛛池模板: 欧美区国产区| 国产精品九九视频| 99久久国产综合精品女同| 欧美激情第一区| 草逼视频国产| av色爱 天堂网| 亚洲第一视频免费在线| 国产jizzjizz视频| 日本午夜三级| 欧美亚洲综合免费精品高清在线观看 | 国产精品成人啪精品视频| 国产第一页免费浮力影院| 人人妻人人澡人人爽欧美一区| 国产欧美日韩资源在线观看| 国内精品一区二区在线观看| P尤物久久99国产综合精品| 五月激情婷婷综合| 成人免费视频一区二区三区 | 国产不卡一级毛片视频| 91精品国产自产在线观看| 无码高清专区| 国产福利一区视频| 亚洲美女久久| 久99久热只有精品国产15| a级毛片免费看| 免费看的一级毛片| 日本一区二区三区精品视频| 亚洲国产欧美目韩成人综合| 狠狠色狠狠色综合久久第一次| 无码专区国产精品一区| a色毛片免费视频| 亚洲日韩精品伊甸| 日韩毛片在线播放| 国产一区二区三区免费| 999福利激情视频| 国产毛片网站| 亚洲视频a| 综合社区亚洲熟妇p| 亚洲第一av网站| 一区二区理伦视频| 国产原创自拍不卡第一页| 久热精品免费| 国产一二三区视频| 欧类av怡春院| 精品国产三级在线观看| 国产成人三级| 国产激情无码一区二区三区免费| 亚洲三级网站| 国产精品久久久久久久久kt| 国产成人亚洲毛片| 97在线观看视频免费| 又爽又黄又无遮挡网站| 国产精品一老牛影视频| 久久天天躁狠狠躁夜夜躁| 久久www视频| 国产精品第一区| 波多野结衣二区| 在线免费观看AV| 精品福利视频导航| 国产99免费视频| 69av免费视频| 成人一级免费视频| 婷婷色中文网| 亚洲有无码中文网| 国产日产欧美精品| 国产精品污视频| 98超碰在线观看| 少妇精品网站| 福利在线一区| 久久精品国产精品国产一区| 97久久人人超碰国产精品| 波多野结衣在线se| 一个色综合久久| 在线亚洲小视频| 日韩福利在线观看| 又粗又大又爽又紧免费视频| 在线五月婷婷| 91av成人日本不卡三区| 亚洲精品第一页不卡| 日韩欧美中文字幕在线精品| 青青久久91| 亚洲毛片网站|