2013-04-23 3 views
0

Как мне выполнить вызывающую страницу с перезагрузкой/обновлением страницы?jQuery Мобильная телефонная страница

Логика: если пользователь успешно вошел в систему, страница будет перемещена на страницу администратора с использованием хранилища HTML5 в качестве данных.

Ex: sessionStorage.setItem('MyID','12345');

Если успешно вошли в систему, строка 12345 будет принято на страницу администратора. Но процесс создания 12345 происходит из формы входа.

Для чтения данных, которые я использую: sessionStorage.getItem('MyID') на странице администратора.

Проблема, с которой я столкнулся был когда JQuery мобильных сделать поворот страниц, страница администратора не может прочитать данные, хотя я должен ввести в функции считывания данных блока: $(document).ready(function())

Но если я делаю обновление/перегружать страница администратора, данные вручную, то сбои

я использовал:

function callAdmin(){ 
    $.mobile.changePage("admin.html"); 
} 

Как сделать страницу вызова с страницей обновления или перезагрузить страницу? или есть ли другой способ, чтобы результаты данных могли быть отправлены на страницу администратора?

ответ

2

Ваша основная проблема здесь в подготовке документа. Это обычная проблема с jQuery Mobile, вам не нужно обновлять свою страницу, чтобы читать ваш сеанс.

Что вам нужно сделать, это использовать надлежащие события jQuery Mobile. Готовый документ должен использоваться только с базовым jQuery. В случае jQuery Mobile он обычно запускается до того, как страница будет успешно загружена в DOM.

Если вы хотите узнать больше об этом прочитать мой другой ответ: jQuery Mobile: document ready vs page events

Первое, что вы узнаете в JQuery должен вызывать код внутри $ (документ) .ready() функция поэтому все будет выполнено, как только DOM будет загружен. Однако в jQuery Mobile, Ajax используется для загрузки содержимого каждой страницы в DOM при навигации. Из-за этого $ (document) .ready() будет запускаться до загрузки первой страницы, и каждый код, предназначенный для обработки страниц, будет выполнен после обновления страницы. Это может быть очень тонкая ошибка. На некоторых системах может показаться, что он работает нормально, но на других он может вызвать неустойчивость, трудно повторить странность.

Классический JQuery синтаксис:

$(document).ready() { 

}); 

Чтобы решить эту проблему (и поверьте мне, это проблема) JQuery Mobile разработчики создали страницу событий. В двух словах страницы события - события, инициированные в определенной точке исполнения страницы. Одна из этих страниц событий является pageinit события, и мы можем использовать его как это:

$(document).on('pageinit', function(){ 

}); 

Мы можем пойти еще дальше и использовать идентификатор страницы вместо выбора документа.Допустим, у нас есть JQuery Mobile страницу с идентификатором индекса:

<div data-role="page" id="index"> 
    <div data-theme="a" data-role="header"> 
     <h3> 
      First Page 
     </h3> 
     <a href="#second" class="ui-btn-right">Next</a> 
    </div> 

    <div data-role="content"> 
     <a href="#" data-role="button" id="test-button">Test button</a> 
    </div> 

    <div data-theme="a" data-role="footer" data-position="fixed"> 

    </div> 
</div> 

Чтобы выполнить код, который будет доступен только на индексной странице мы могли бы использовать этот синтаксис:

$('#index').on('pageinit') { 

}); 
+0

Спасибо за ваш ответ. .Если я использую $ (document) .on ('pageinit', function() мое дело будет решено? –

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