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.

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

主站蜘蛛池模板: 毛片免费在线| 国产精品一老牛影视频| jijzzizz老师出水喷水喷出| 老汉色老汉首页a亚洲| 国产综合欧美| 草草线在成年免费视频2| 欧美激情伊人| 小说区 亚洲 自拍 另类| 色AV色 综合网站| 日韩欧美91| 久久中文无码精品| 91精品国产情侣高潮露脸| 全裸无码专区| 国产性爱网站| 欧美国产精品拍自| AV不卡在线永久免费观看| 婷婷伊人久久| 欧美 亚洲 日韩 国产| 婷婷中文在线| 欧美午夜视频在线| 欧美成人二区| 国产精品久久久久久搜索| 国产人前露出系列视频| 青青草国产精品久久久久| 久久无码av一区二区三区| 不卡无码网| 亚洲日韩高清在线亚洲专区| 亚洲成人www| 久久久久亚洲精品无码网站| 亚洲精品日产精品乱码不卡| 久草网视频在线| 国产白浆视频| 国产精品无码影视久久久久久久| 欧美黄网站免费观看| 99热这里只有免费国产精品 | 在线播放真实国产乱子伦| 亚洲天堂啪啪| 国产成人高清在线精品| 欧美一级一级做性视频| 久久精品这里只有国产中文精品| 中国国产一级毛片| 午夜高清国产拍精品| 国产内射在线观看| 狠狠色香婷婷久久亚洲精品| 凹凸国产分类在线观看| 午夜国产在线观看| 一本大道东京热无码av| 日韩午夜伦| 无码高潮喷水专区久久| 国产美女一级毛片| 欧美中文字幕在线二区| 免费A∨中文乱码专区| 久久天天躁狠狠躁夜夜躁| 69精品在线观看| 欧美va亚洲va香蕉在线| 精品在线免费播放| 无码精品一区二区久久久| 幺女国产一级毛片| 麻豆国产精品| 精品国产美女福到在线直播| 国产日韩欧美中文| av大片在线无码免费| 色综合色国产热无码一| 国产毛片一区| 久久精品人人做人人综合试看| 精品三级在线| m男亚洲一区中文字幕| 伊人五月丁香综合AⅤ| 一本一道波多野结衣av黑人在线| 福利视频一区| 久久综合九九亚洲一区| 狠狠色婷婷丁香综合久久韩国| 久久综合亚洲色一区二区三区| 伊人激情综合| 国产成人精品免费视频大全五级 | 美女潮喷出白浆在线观看视频| 精品一区二区三区视频免费观看| 免费不卡在线观看av| 国产精品网址在线观看你懂的| 免费毛片全部不收费的| 欧美激情视频二区三区| 久久精品国产999大香线焦|