干熟妇在线视频午夜剧场一级A级|99成人香视频日本两性激情视频|久久 午夜福利无码精品人妻一区|热久久超碰精品精品少妇一区二区|五月天综合在线国产一区免费视频|亚洲成人中心热re久久99|亚洲国产怡红院丁香五月综合h|玖玖九久久久午夜射精视频

十年專注于品牌網(wǎng)站建設 十余年專注于網(wǎng)站建設_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡微信公眾號 掃一掃關(guān)注
小程序
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡微信公眾號
掃一掃打開百恒網(wǎng)絡微信小程序

百恒網(wǎng)絡

南昌百恒網(wǎng)絡

間歇setlnterval()調(diào)用和超時setTimeout()調(diào)用方法詳細介紹

百恒網(wǎng)絡 2013-05-11 7368

JavaScript是單線程語言,但它允許通過設置超時值和間歇時間值來調(diào)度代碼在特定的時刻執(zhí)行。前者是在指定的時間過后執(zhí)行代碼,而后者則是每隔指定的時間就執(zhí)行一次代碼。

超時調(diào)用需要使用window對象的setTimeout()方法,它接受兩個參數(shù):要執(zhí)行的代碼和以毫秒表示的時間(即在執(zhí)行代碼前需要等待多少毫秒)。其中,第一個參數(shù)可以是一個包含JavaScript代碼的字符串(就和在eval()函數(shù)中使用的字符串一樣),也可以是一個函數(shù)。例如,下面對

setTimeout()的兩次調(diào)用都會在一秒鐘后顯示一個警告框:

//不建議傳遞字符串!

setTimeout('alert(’Hello worldl’) “, 1000);

//推薦的調(diào)用方式

setTimeout( function() {

alert( "Hello world!");

}, 1000);

雖然這兩種調(diào)用方式都沒有問題,但由于傳遞字符串可能導致性能損失,因此南昌網(wǎng)站建設公司工程師不建議以字符串作為第一個參數(shù)。

調(diào)用setTimeout()之后,該方法會返回一個數(shù)值ID,表示超時調(diào)用。這個超時調(diào)用ID是計劃執(zhí)行代碼的唯一標識符,可以通過它來取消超時調(diào)用。要取消尚未執(zhí)行的超時調(diào)用計劃,可以調(diào)用clearTimeout()方法并將相應的超時調(diào)用ID作為參數(shù)傳遞給它,如下所示:

//設置超時調(diào)用

var timeoutld=setTimeout( fune tion() (

alert( "Hello world!");

), lOOO) ;

//注意:把它取消

clearTimeout(timeoutld);

只要是在指定的時間尚未過去之前調(diào)用clearTimeout(),就可以完全取消超時調(diào)用。前面的代碼在設置超時調(diào)用之后馬上又調(diào)用了clearTimeout(),結(jié)果就跟什么也沒有發(fā)生一樣。

超時調(diào)用的代碼都是在全局作用域中執(zhí)行的,因此函數(shù)中this的值通常會指向window對象。

間歇調(diào)用與超時調(diào)用類似,只不過它會按照指定的時間間隔重復執(zhí)行代碼,直至間歇調(diào)用被取消或者頁面被卸載。設置間歇調(diào)用的方法是setlnterval(),它接受的參數(shù)與setTimeout()相同:要執(zhí)行的代碼(字符串或函數(shù))和每次執(zhí)行之前需要等待的毫秒數(shù)。下面來看一個例子:

//不建議傳遞字符串!

setlnterval ("alert('Hello world!') 0);

//推薦的調(diào)用方式

setlnterval( function() {’

alert( "Hello worldl");

}, 10000);

調(diào)用setlnterval()方法同樣也會返回一個間歇調(diào)用ID,該ID可用于在將來某個時刻取消間歇調(diào)用。要取消尚未執(zhí)行的間歇調(diào)用,可以使用clearlnterval()方法并傳人相應的間歇調(diào)用ID。取消間歇調(diào)用的重要性要遠遠高于取消超時調(diào)用,南昌網(wǎng)站設計公司技術(shù)人員認為在不加干涉的情況下,間歇調(diào)用將會一直執(zhí)行到頁面卸載。以下是一個常見的使用間歇調(diào)用的例子:

var num=O:

var max=10;

var intervalld=null;

function incrementNumber() {

num++:

//如果執(zhí)行次數(shù)達到了max設定的值,則取消后續(xù)尚未執(zhí)行的調(diào)用

if (num==max) {

clearlnterval(intervalld);

alert("Done");

}

}

intervalld=setlnterval( incrementNurnber, 500)j

在這個例子中,變量mun每半秒鐘遞增一次,當遞增到最大值時就會取消先前設定的間歇調(diào)用。這個模式也可以使用超時調(diào)用來實現(xiàn),如下所示:

var num=O:

var max=10;

function incrementNumber() {

num++:

}

可見,在使用超時調(diào)用時,沒有必要跟蹤超時調(diào)用ID,因為每次執(zhí)行代碼之后,如果不再設置另一次超時調(diào)用,調(diào)用就會自行停止。一般認為,使用超時調(diào)用來模擬間歇調(diào)用的是一種最佳模式。南昌網(wǎng)絡公司技術(shù)人員認為在開發(fā)環(huán)境下,很少使用真正的間歇調(diào)用,原因是后一個間歇調(diào)用可能會在前一個間歇調(diào)用結(jié)束之前啟動,而像前面示例中那樣使用超時調(diào)用,則完全可以避免這一點。所以,最好不要使用間歇調(diào)用。

本文僅限內(nèi)部技術(shù)人員學習交流,不得作于其他商業(yè)用途.文章出自:南昌網(wǎng)站制作公司-百恒網(wǎng)絡 http://www.myforexfactory.net 如轉(zhuǎn)載請注明出處!


400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡微信公眾號
掃一掃打開百恒網(wǎng)絡小程序

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
售后服務 售后服務
 
備案專線 備案專線
 
×
阿克苏市| 黄冈市| 乡城县| 恩施市| 夏邑县| 开远市| 河南省| 潜江市| 霍城县| 竹北市| 呈贡县| 日照市| 且末县| 灵川县| 通河县| 新余市| 毕节市| 自贡市| 永年县| 额济纳旗| 崇明县| 黄浦区| 保德县| 扎鲁特旗| 阳新县| 庐江县| 竹北市| 三明市| 佛冈县| 澄城县| 肃宁县| 浏阳市| 加查县| 体育| 新绛县| 沁源县| 泽库县| 肇东市| 论坛| 贵州省| 无锡市|