2012-07-04 21 views
0

希望你能幫助我。改javascript(或<script>標籤)使用javascript

我想找出一種方法來改變使用JavaScript的JavaScript代碼。

如果這是不可能的,那麼如果你可以建議另一種方式來完成我想要做的事情,那將會很棒。

基本上,用戶選擇選項,該選項爲時鐘生成定製的javascript代碼(使用php通過ajax技術)。現在使用eval語句運行此代碼,並且時鐘顯示在特定元素中。

每次通過AJAX從服務器接收到響應時,都會運行eval()語句。

問題是,由於它是一個時鐘,我使用setInterval()來不斷更新時間。現在,如果運行多個ajax調用,多個函數開始在循環中運行。

即,第一臺服務器調用後,我們有這樣運行:

setInterval(function and code for clock with format 1,1000); 

setInterval(function and code for clock with format 2,1000); 

所以基本上,我想以某種方式從第二個開始前停止運行的第一個..有任何想法嗎?

在此先感謝。

回答

0

setInterval返回創建的間隔,的數字標識符,其可以傳遞給clearInterval阻止它。只需將標識符存儲在某個變量中,並在開始新時間間隔之前將其停止。

var intervalID; 

// When creating the first interval 
intervalID = setInterval(function() { ... }, 1000); 

// When creating the second interval 
clearInterval(intervalID); 
intervalID = setInterval(function() { ... }, 2000); 

如果你不確定,如果時間間隔已經啓動或沒有,你可以先檢查是否intervalID設置,必要時清除它。

if(intervalID) clearInterval(intervalID); 
intervalID = setInterval(function() { ... }, 1000);