2012-01-08 10 views
1

私はsetInterval()を使って最新のデータを取得し、一定の間隔で何かを描画します。しかし、IEでは1回しか動作しません、Googleで検索しました。問題なので、私はこのような私のURLにタイムスタンプを追加しました:setInterval()に混乱しています

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

しかし、それはまだ動作しない、または私はいくつかのミスをしましたか?

私は関数を記述するための別の方法を変更し、元のコードは次のとおりです。

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

それはIEのみで一度に動作しますが、Chromeはokです。

新しいコードは次のとおりです。

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

それはIEで動作しますので、私はこの2つの方式の違いについて混乱しています。

+1

間隔変数は、この機能のためのメモリがクリアされたときに、その間隔がある(グローバルに宣言されていない)autoRefreshFunctionのコンテキストでのみ住んでいます。インターバルをグローバルに宣言するか、2番目のコードを使用してください。 – Cystack

+0

私はここであなたが何を求めているのか分からない。あなたは擬似コードではなく、実際のコードで明確にすることができ、何がうまくいくのか、何がうまくいかないのかを具体的に理解できますか? – jfriend00

+1

@Cystack - 変数 'interval'の有効期間は正しいですが、実際のインターバルタイマーには影響しません。それはいずれかの方法を続けます。 – jfriend00

答えて

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); 
} 
関連する問題