setTimeout()在js類中的使用方法

創(chuàng)新互聯(lián)是一家從事企業(yè)網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)制作的專業(yè)網(wǎng)絡(luò)公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)近千家。
setTimeout (表達(dá)式,延時時間)
setTimeout(表達(dá)式,交互時間)
延時時間/交互時間是以豪秒為單位的(1000ms=1s)
setTimeout 在執(zhí)行時,是在載入后延遲指定時間后,去執(zhí)行一次表達(dá)式,僅執(zhí)行一次
setTimeout 在執(zhí)行時,它從載入后,每隔指定的時間就執(zhí)行一次表達(dá)式
1,基本用法:
執(zhí)行一段代碼:
var i=0;
setTimeout("i+=1;alert(i)",1000);
執(zhí)行一個函數(shù):
var i=0;
setTimeout(function(){i+=1;alert(i);},1000);
//注意比較上面的兩種方法的不同。
下面再來一個執(zhí)行函數(shù)的:
var i=0;
function test(){
i+=1;
alert(i);
}
setTimeout("test()",1000);
也可以這樣:
setTimeout(test,1000);
總結(jié):
setTimeout的原型是這樣的:
iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])
setTimeout有兩種形式
setTimeout(code,interval)
setTimeout(func,interval,args)
其中code是一個字符串
func是一個函數(shù).
注意"函數(shù)"的意義,是一個表達(dá)式,而不是一個語句.
比如你想周期性執(zhí)行一個函數(shù)
function a(){
//...
}
可寫為
setTimeout("a()",1000)
或
setTimeout(a,1000)
這里注意第二種形式中,是a,不要寫成a(),切記!!!
展開來說,不管你這里寫的是什么,如果是一個變量,一定是一個指向某函數(shù)的變量;如果是個函數(shù),那它的返回值就 要是個函數(shù)
2,用setTimeout實(shí)現(xiàn)setInterval的功能
思路很簡單,就是在一個函數(shù)中調(diào)用不停執(zhí)行自己,有點(diǎn)像遞歸
var i=0;
function xilou(){
i+=1;
if(i10){alert(i);return;}
setTimeout("xilou()",1000);
//用這個也可以
//setTimeout(xilou,1000);
}
在你的main方法里加上這個
try {
Thread.sleep(5000);//括號里面的5000代表5000毫秒,也就是5秒,可以該成你需要的時間
} catch (InterruptedException e) {
e.printStackTrace();
}
Java中主要有兩種方法來實(shí)現(xiàn)延遲,即:Thread和Timer\x0d\x0a\x0d\x0a1、普通延時用Thread.sleep(int)方法,這很簡單。它將當(dāng)前線程掛起指定的毫秒數(shù)。如\x0d\x0atry \x0d\x0a{ \x0d\x0aThread.currentThread().sleep(1000);//毫秒 \x0d\x0a} \x0d\x0acatch(Exception e){} \x0d\x0a在這里需要解釋一下線程沉睡的時間。sleep()方法并不能夠讓程序"嚴(yán)格"的沉睡指定的時間。例如當(dāng)使用5000作為sleep()方法的參數(shù)時,線 程可能在實(shí)際被掛起5000.001毫秒后才會繼續(xù)運(yùn)行。當(dāng)然,對于一般的應(yīng)用程序來說,sleep()方法對時間控制的精度足夠了。\x0d\x0a\x0d\x0a2、但是如果要使用精確延時,最好使用Timer類:\x0d\x0aTimer timer=new Timer();//實(shí)例化Timer類 \x0d\x0atimer.schedule(new TimerTask(){ \x0d\x0apublic void run(){ \x0d\x0aSystem.out.println("退出"); \x0d\x0athis.cancel();}},500);//五百毫秒 \x0d\x0a這種延時比sleep精確。上述延時方法只運(yùn)行一次,如果需要運(yùn)行多次, 使用timer.schedule(new MyTask(), 1000, 2000); 則每間隔2秒執(zhí)行MyTask()
顯示JDialog之前啟動一個線程,等待3秒后使JDialog消失
注意,一定要在JDialog.setVisible(true)之前啟動線程,否則,一旦啟動JDialog,就會阻塞住程序,使后面的代碼無法執(zhí)行
可以試試java.lang.Thread里的sleep方法
public static void sleep(long millis)
throws InterruptedException在指定的毫秒數(shù)內(nèi)讓當(dāng)前正在執(zhí)行的線程休眠(暫停執(zhí)行),此操作受到系統(tǒng)計(jì)時器和調(diào)度程序精度和準(zhǔn)確性的影響。該線程不丟失任何監(jiān)視器的所屬權(quán)。 參數(shù):
millis - 以毫秒為單位的休眠時間。
拋出:
InterruptedException - 如果任何線程中斷了當(dāng)前線程。當(dāng)拋出該異常時,當(dāng)前線程的中斷狀態(tài) 被清除。
多線程操作,如
運(yùn)行后的界面,繼承線程類,或繼承AsyncTask
在類的任務(wù)擴(kuò)展AsyncTask
保護(hù)無效的doInBackground(VOID ...參數(shù)){
調(diào)用Thread.sleep(1000);
}
保護(hù)無效onPostExecute(虛空結(jié)果){
result.setText(str.toString()); BR /
}
}
主線程“新”的任務(wù)()()內(nèi)的;
本文標(biāo)題:java延遲執(zhí)行代碼,java 延時執(zhí)行
網(wǎng)站地址:http://chinadenli.net/article35/dsihgsi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、定制開發(fā)、App設(shè)計(jì)、小程序開發(fā)、品牌網(wǎng)站制作、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)