Я схожу с ума, пытаясь получить показания счетчика. Я связан мои тяжелые функции обработки к кнопке таким образом:Показать загрузку вертела перед интенсивной обработкой в jQuery Mobile 1.1?
$(document).delegate("#clearread", "tap", onClearRead);
Так на кране он называет это:
var onClearRead = function() {
setTimeout($.mobile.showPageLoadingMsg, 5);
// Civilised cleaning of saved status
var jStorIndex = $.jStorage.index();
for (var i = 0; i < jStorIndex.length; i++) {
if(jStorIndex[i] != "version") {
$.jStorage.deleteKey(jStorIndex[i]);
}
}
// Load articles afresh
loadArticles();
$.mobile.changePage("#choosearticle");
} //onClearRead
Я считаю, что вертушка не появляется во время клиринговых/погрузок статьи (около 10 секунд), но только на короткий период, пока страница #choosearticle загружается (0,5 секунды). Что я делаю неправильно?
У меня есть счетчик, работающий в другом месте приложения.
Благодаря
@Nirmal Patel только фиксированная моя проблема, но кто-нибудь знает _WHY_ требуется сумасшедшая случайная SetTimeout? Я читал, что речь идет о соперничестве с процессором, кто-нибудь может объяснить более подробно? – Alveoli
Проблема заключается в том, что JS работает в одном потоке в браузере. Поэтому, если вы начнете тяжелую обработку; браузер не пытается перерисовать/перерисовать содержимое до завершения JS. И к тому времени, когда JS закончен; мы вызвали changePage() ... setTimeout просто дает браузеру достаточно передышки для выполнения других задач, прежде чем вернуться к тяжелой работе в JS. –
, наконец, некоторая ясность - спасибо! – Alveoli