我試圖在使用javascript的html頁面上顯示進度條。但是,當包含代碼的瀏覽器選項卡變爲非活動狀態時,進度欄停止更新, 將在標籤再次處於活動狀態時恢復。JQuery進度條在瀏覽器選項卡更改時暫停
當窗口處於非活動狀態時,如何防止瀏覽器停止/暫停JavaScript代碼的執行?
雖然它可能是無關緊要的,這裏是代碼:
Object.progressBar = function(){
$("#question-progress-bar").progressbar({
value: false,
complete: function(event, ui) { ... }
});
var seconds = 15.0,
progressbar = $("#question-progress-bar"),
progressbarValue = progressbar.find(".ui-progressbar-value");
progressbarValue.css({
"background": '#c5b100',
"opacity" : '0.8'
})
var int = setInterval(function() {
var percent = (15-seconds)/15*100;
seconds=seconds-0.1;
progressbar.progressbar("option", {
value: Math.ceil(percent)
});
$("#question-progress-bar-seconds").html((seconds).toFixed(1)+"s");
if (seconds <= 0.1) {
clearInterval(int);
}
}, 100);
}
[可能相關](http://stackoverflow.com/questions/7977170/ios-5-pauses-javascript-when-tab-is-not-active),如果不是基本上是重複的。你在看什麼瀏覽器? – ajp15243 2013-04-22 15:34:13
你不能。當頁面不活動時,現代瀏覽器都會減慢間隔計時器,並且它們無條件地這樣做。 – Pointy 2013-04-22 15:35:03
您是否考慮設置一個時間間隔來檢查頁面加載後的時間?這樣間隔計時器的頻率並不重要。 https://developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Global_Objects/Date – 2013-04-22 15:36:41