2012-06-04 98 views
0

他的傢伙指定數量,加載javascript函數,當再次其加載負荷它在幾秒鐘

也許你能幫助我,我需要一個代碼,當頁面加載的功能(如下圖)

function update() { 
    $('#animation').load('/Stream/readLevel'); 
} 

需要執行,當這個動作完成(所以頁面/流/ readLevel已經完全加載的功能內容必須再次秒數(2秒)加載。

我怎麼能做到這一點?

提前致謝!

回答

3

當你只想要的內容已經完全載入後你重裝已設置定時器在success回調$.load功能像以下,否則它會每兩秒向服務器發送請求,而不管前一個Ajax請求是否已完成。

function update() { 
    $('#animation').load('/Stream/readLevel',function(){ 
     var timer = setTimeout(update,2000); 
    }); 
} 
$(function(){ 
    update(); 
}); 
+0

這是迄今爲止唯一的答案,它不會做什麼操作請求 – Esailija

+0

請檢查http ://jsfiddle.net/FvZsS/ – Adil

+0

有人不應該編輯我的答案,並添加如下內容:s –

1

你可以這樣做。

$(function(){  
    update(); 
}); 


function update() { 
    $('#animation').load('/Stream/readLevel', function(){ 
     alert("after two seconds of load"); 
     setTimeout('update()', 2000); 
    }); 
} 

+0

我已經試過,但網頁時不滿載時我的網站上執行任何操作(這是一塊在readLevel代碼代碼:回聲「$(」 #'。$ player_name。'「).animate({width:」'。$ player_width。'px「,height:''。$ player_height。'px」,},3000);'; )so this animate action不工作(每2秒) –

+0

檢查它在這裏http://jsfiddle.net/FvZsS/ – Adil

+0

這不是什麼OP要..他不想盲目地每2秒發送一次服務器垃圾郵件,但發送請求在完全加載之前的請求2秒後.. – Esailija

0

嘗試

function update(){ 
    $('#animation').load('/Stream/readLevel',function(){ 
    setTimeout(update,2000); }); 

} 
+3

不要將字符串傳遞給'setTimeout'。 – DCoder

+0

爲什麼?............ – 2012-06-04 09:29:45

+2

@Somebodyisintrouble這將觸發邪惡'eval'。 –

0
<script> 
function update() { 
    $("#animation").load('/Stream/readLevel',"",function(){ 
     setTimeout(update,2000); 
    }); 
} 
</script> 

<body onload="update()"> 
    // HTML CODE 
</body> 
+0

這不是什麼OP希望..他不希望盲目地每2秒向服務器發送一次垃圾郵件,而是在完全加載之前的請求2秒後發送請求。 – Esailija

0

var c = 2; function update(){ $('#animation')。load('/ Stream/readLevel'); } 功能startTimer所(){

if(c< 0){ 
c=2; 
} 
if(c==2){ 
update(); 
} 
timer = setTimeout('startTimer()',1000); 
c=c-1; 
} 
$(document).ready(function(){ 
startTimer(); 
});