Приложение работало хорошо до того момента, пока я не решил (по очевидным причинам) обновить sh вместо перезагрузки страницы.
Разница в том, что при перезагрузке страницы очищается окно, а затем снова отображает страницу, а метод обновления sh с jQuery мобильного не воспринимает этот эффект.
Я создал видео , где вы можете увидеть сбой.
Я также создал ссылку (пароль демонстрационный), где они могут запустить приложение, чтобы воспроизвести сбой.
Код, который я использую для обновления sh страницы, следующим образом:
function refreshPage( page, options ) {
// reload method:
// window.location.reload( true );
// refresh method:
page = page || window.location.href;
options = ( typeof(options) == "object" ) ? options : {};
if ( options.changeHash == undefined ) options.changeHash = false;
if ( options.reloadPage == undefined ) options.reloadPage = true;
// if ( options.showLoadMsg == undefined ) options.showLoadMsg = false;
if ( options.transition == undefined ) options.transition ='none';
if ( options.allowSamePageTransition == undefined ) options.allowSamePageTransition = true;
if ( page != window.location.href )
try {
var isInSide = "";
if ( page.indexOf( "http" ) != 0 && page.indexOf( "." ) != 0 && page.indexOf( "/" ) != 0 )
isInSide = $("#"+page+"[data-role]");
if ( isInSide.length ) {
page = isInSide;
} else {
throw "pagina no esta en el DOM, intenta cargarla desde la WEB";
}
} catch(err) { console.error(err)
if ( options.changeHash == false )
return false; // No genera nuevas Paginas (solo hash ya exisentes)
if ( page.indexOf( "http" ) != 0 && page.indexOf( "." ) != 0 && page.indexOf( "/" ) != 0 )
page = unescape(unescape(window.location.href)).split(" ")[0] + " "+ page;
}
$.mobile.changePage( page, options );
return true;
}
Я предполагаю, что сбой происходит из-за проблем в jQuery Mobile , который плохо справляется с обновлением страниц, однако я решил опубликовать sh невнимание к мнениям и / или решениям;)) ...
Заранее спасибо.