从缓存加载页面时,JQueryMobile中会触发哪个事件

时间:2012-02-28 11:05:09

标签: jquery jquery-mobile

我开始经历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") );
    },

0 个答案:

没有答案