проблема с обновлением страницы в jQuery мобильном - PullRequest
0 голосов
/ 16 июня 2020

Приложение работало хорошо до того момента, пока я не решил (по очевидным причинам) обновить 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 невнимание к мнениям и / или решениям;)) ...

Заранее спасибо.

...