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的網站,並且更新內的所有內容都會更新。
我遇到的問題是,當updatepanel面板更新一個新的JavaScript間隔正在創建,所以另一個計數器被添加到#lbTimer導致2個或更多的倒計時定時器之間閃爍。
很明顯,當腳本在每個頁面上運行時,沒有辦法清除頁面上已經運行的間隔,我可以看到它,這導致了多個定時器。
我在以下內容中添加了一些內容,但是我需要定時器再次更新部分頁面加載。
if (!args.get_isPartialLoad()) {
//Timer code here
}
沒有人有任何意見或建議我如何使用我的應用程序一個javascript倒數計時器讓我明確的時間間隔創建部分頁面加載一個新的?
希望我已經提供了足夠的細節,但如果需要,我可以添加更多細節。
在此先感謝您的時間和幫助!
感謝您的快速響應。 我不確定我是否正確使用它,但當頁面加載(部分)時,intVal總是返回爲「undefined」 – 2012-03-30 15:43:17