2012-06-07 3 views
2

Я схожу с ума, пытаясь получить показания счетчика. Я связан мои тяжелые функции обработки к кнопке таким образом:Показать загрузку вертела перед интенсивной обработкой в ​​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 секунды). Что я делаю неправильно?

У меня есть счетчик, работающий в другом месте приложения.

Благодаря

+0

@Nirmal Patel только фиксированная моя проблема, но кто-нибудь знает _WHY_ требуется сумасшедшая случайная SetTimeout? Я читал, что речь идет о соперничестве с процессором, кто-нибудь может объяснить более подробно? – Alveoli

+1

Проблема заключается в том, что JS работает в одном потоке в браузере. Поэтому, если вы начнете тяжелую обработку; браузер не пытается перерисовать/перерисовать содержимое до завершения JS. И к тому времени, когда JS закончен; мы вызвали changePage() ... setTimeout просто дает браузеру достаточно передышки для выполнения других задач, прежде чем вернуться к тяжелой работе в JS. –

+0

, наконец, некоторая ясность - спасибо! – Alveoli

ответ

3

Попробуйте это:

$(document).delegate("#clearread", "tap", onClearRead); 

var onClearRead = function() { 
$.mobile.showPageLoadingMsg(); 
setTimeout(function(){ 
     //Your heavy processing 
     $.mobile.changePage("#choosearticle"); 
    }, 5); 
} //onClearRead 
+1

** Да, это работает - спасибо! ** Я обнаружил, что вам может понадобиться миллисекунды (если говорить 100), если устройство работает медленно. В противном случае счетчик пока не отображается. – Alveoli

Смежные вопросы