2012-03-30 7 views
0

私のアプリで何が起こっているのかを試してみると、javascriptの間隔を設定するコードに問題があることがわかりました。ここでasp.net ajaxアプリケーション内でjavascriptカウントダウンタイマーを使用する

は、フルページのリロードがあれば今これは絶対にうまく動作間隔を設定します私のコード...

Sys.Application.add_load(function PageLoad(sender, args) { 

     var timer = $("#lbTimer"); 
     var intVal = ""; 
     var verifiedTime = Date.parse(timer.html()); 

     if ($("#imgLock").hasClass("hidden") && !isNaN(verifiedTime) && verifiedTime != null) { 

      $("#imgLock").addClass("hidden"); 
      $("#imgUnlock").removeClass("hidden"); 

      intVal = setInterval(function() { 
       $("#lbTimer").html(function() { 
        var t = parseInt((new Date() - verifiedTime)/1000, 10); 
        t %= 3600; 
        var m = Math.floor(t/60); 
        var s = Math.floor(t % 60); 

        if (m == 0 && s == 0) { 

         $("#lbLocked").removeClass("hidden"); 
         $("#imgLock").removeClass("hidden"); 
         $("#imgUnlock").addClass("hidden"); 
         $("#lbTimer").html(""); 
         window.clearInterval(intVal); 
         verifiedTime = ""; 
        } else { 
         if (s == 0) { 
          $(this).html((m + ":0" + s).replace("-", "")); 
         } else { 
          $(this).html((m + 1 + ":" + s).replace("-", "")); 
         } 

         if (s > -10) { 
          if (m == -1) { 
           $(this).html($(this).html().replace(":", ":0")); 
          } else { 
           $(this).html($(this).html().replace("-", "0")); 
          } 
         } else { 
          $(this).html($(this).html().replace("-", "")); 
         } 
        } 
       }); 
      }, 1000); 

      $("#lbTimer").removeClass("hidden"); 


}); 

です。問題は、私はajax対応のWebサイトを開発しており、更新版内ですべての更新が行われていることです。

私が遭遇している問題は、updatepanelパネルが新しいjavascript間隔を更新して、別のカウンタが#lbTimerに追加されて2つ以上のカウントダウンタイマーの間でちらつきが発生するようになっているということです。

明らかに、スクリプトが各ページング負荷で実行されているので、私が見ることができるページですでに実行されているインターバルをクリアする方法がないため、複数のタイマーが発生します。

しばらく問題を解決しましたが、部分的なページロードで再び更新するにはタイマーが必要です。

if (!args.get_isPartialLoad()) { 
//Timer code here 
} 

誰も私は私が部分的なページロードで新しいものを作成するために、間隔をクリアすることができます私のアプリではjavascriptのカウントダウンタイマーを使用することができますどのように任意の提案や提言を持っていますか?

うまくいけば、私は十分な詳細を与えましたが、必要に応じてさらに追加することができます。

時間と手助けをお寄せいただきありがとうございます!

答えて

0

は、迅速な対応のために、以前に

var intervalID; 
var resetTimer = function() { 
if (intervalID) { 
clearInterval(intervalID) }; 
intervalID = setInterval(function() { your code here....}; 
+0

感謝を設定するタイマーをオフにクリアするために部分負荷でfollowigを書きます。 これを正しく使用しているかどうかはわかりませんが、ページが(部分的に)読み込まれるとintValは常に "undefined" –

関連する問題