Я начинаю изучать 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") );
},