Какое событие вызывается в JQueryMobile при загрузке страницы из кэша - PullRequest
0 голосов
/ 28 февраля 2012

Я начинаю изучать JQuery Mobile и застрял в том, что может быть легкой проблемой.У меня есть страница списка HTML, которая является моим шаблоном, который я позже обновляю данными, поступающими от вызова ajax в спокойный сервис.Теперь случается так, что в некоторых случаях страница загружается с данными, в другом случае нет.Я думаю, что это связано с кешем, но я не смог найти способ заставить это работать правильно.Я прошел через другую подобную тему, но не нашел ничего, что действительно решило бы это.

Я попытался добавить следующую мета

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE">
<meta http-equiv="Expires" content="-1">

, а также сделал некоторые варианты темы, такие как

<meta http-equiv="Cache-control" content="no-store">
<meta http-equiv="Expires" content="0">

HTML содержит одну страницу с верхним и нижним колонтитулами, как

<div data-role="page" id="server-page">

<div data-role="header">
  <h3>Servers</h3>
</div>

<div data-role="content">
    <ul data-role="listview" id="server-list"></ul>
</div>

, и обновление данных запускается с помощью

$( "#server-page" ).live( "pagebeforecreate", function(e){...});

В книге "Pro JQuery Mobile" естьдля загрузки новой страницы или получения из кэша показана хорошая картинка о потоке событий и другой путь.Насколько я понимаю, такие события, как "pagebeforechange", "pagebeforeshow" и "pageshow", например, всегда должны быть "вызваны", но это не так ... или, по крайней мере, я не понял, как работать с ними вway.

Как я могу заставить это работать как для кэшированной, так и для "свежей" страницы?

Спасибо

Добавлена ​​функция, используемая для обновления списка:

$.mobile.showPageLoadingMsg();

$.ajax({
    url: "http://localhost:8080/rest/server",  
    dataType: "json",
    cache: "false",
    success: function( response ) {
        var markup = "";
        $.each(response.server, function(index, result) 
        { 
            var $template = $('<div><li><a href="projects.html" class="project-link"><img class="ui-li-icon"/><span class="server-name"></span></a></li></div>');
            $template.find(".server-name").append(result.name);

            $template.find(".project-link").attr("id", result.name);

            if (result.isRunning == "true")
            {
                $template.find(".ui-li-icon").attr("src", "icons/ledgreen.png");
            }
            else
            {
                $template.find(".ui-li-icon").attr("src", "icons/ledred.png");
            }
            markup += $template.html();
        });
        $( "#server-list" ).append(markup).listview( "refresh", true );
        $.mobile.changePage( $("#server-page") );
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...