2012-01-08 57 views
1

我使用setInterval()來獲取最新的數據,並以設定的時間間隔畫東西。但在IE中,它只能工作一次,我在谷歌搜索它,它說IE的緩存可能是一個問題,所以我增加了一個時間戳我的網址是這樣的:confused onsetInterval()

url+"?"+Math.random(); 

但它仍然無法正常工作,或者我犯了一些錯誤?

我換另一種方式來寫我的功能,原代碼:

$(document).ready(function()){ 
    autoRefreshFunction(some parameters){ 
     var interval=setInterval(
         function(){ 
          main function that gets data and draw 
         },time_interval); 
    } 
} 

只工作在IE中一個時間,但鉻是確定的。

新的代碼爲:

$(document).ready(function()){ 
    var interval=setInterval(
        function(){ 
         main function that gets data and draw 
        },time_interval); 
} 

它工作在IE瀏覽器,所以我很困惑這個兩分法之間的差異。

+1

區間變量只生活在autoRefreshFunction(不是全局聲明),所以當這個功能的內存被清除的情況下,所以是時間間隔。嘗試全局聲明「間隔」或使用第二個代碼。 – Cystack 2012-01-08 02:12:54

+0

我不能告訴你在這裏問什麼。你能否用真實的代碼來澄清不是僞代碼,並且更具體地說明哪些是有效的,哪些是無效的。 – jfriend00 2012-01-08 02:13:35

+1

@Cystack - 你對變量'interval'的使用期限是正確的,但這並不影響實際的間隔計時器。它一直持續下去。 – jfriend00 2012-01-08 02:14:49

回答

2

我認爲這可能是你的問題:

$(document).ready(function()){ 

你太早關閉圓括號ready。我認爲你想要:

$(document).ready(function() { 

IE可能已經被困惑了。此外,在原始代碼,您有:

$(document).ready(function()){ 
    autoRefreshFunction(some parameters){ //<----- what's this? 
     var interval=setInterval(
         function(){ 
          main function that gets data and draw 
         },time_interval); 
    } 

它看起來像你那種定義了一個名爲autoRefreshFunction功能,但不正確的,因爲你忘了function關鍵字。

我認爲最終的結果應該是:

$(document).ready(function() { 
    var interval=setInterval(
        function(){ 
         main function that gets data and draw 
        },time_interval); 
} 
相關問題