我开始经历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”之类的事件应该总是被“调用”,但事实并非如此......或者至少我还没弄清楚如何与那些合适的人合作方式。
我怎样才能在缓存和“新鲜”页面上使用它?
谢谢
添加了用于更新列表的功能:
$.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") );
},