【问题标题】:Prevent jQuery Mobile from caching pages防止 jQuery Mobile 缓存页面
【发布时间】:2013-07-27 22:55:23
【问题描述】:

考虑具有以下代码的 page1.php 文件:

<?php
session_start();
if (isset($_SESSION['var'])) unset($_SESSION['var']);
?>
<html>
<head>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
</head>
<body>
    <div data-role="page">
        <div data-role="content">
            <?php echo $_SESSION['var']; ?>
            <a href="page2.php">next page</a>
        </div>
    </div>
</body>
</html>

还有一个page2.php,代码如下:

<?php
session_start();
$_SESSION['var']++;
?>
<html>
<head>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
</head>
<body>
    <div data-role="page">
        <div data-role="content">
            <?php echo $_SESSION['var']; ?>
            <a href="page1.php">previous page</a>
        </div>
    </div>
</body>
</html>

我想要得到的结果是当你点击链接到page2.php,然后在page2.php上刷新几次页面,然后点击链接到page1.php,然后再次点击链接进入page2.php,计数器应该回到开头。所以基本上,转到 page1.php 会重置计数器,转到 page2.php 会增加它。

但是,实际发生的情况是我转到 page2.php 并刷新了几次,然后计数器按预期上升,然后当我返回 page1.php 并返回 page2.php 时,计数器仍然是相同的。但是当我现在刷新页面时,它确实回到了开头。所以显然会话变量正在工作并且正在正确设置和取消设置,但似乎 jQuery 正在缓存页面。这也没有任何意义,因为 data-dom-cache (http://jquerymobile.com/demos/1.2.0/docs/api/data-attributes.html) 属性默认设置为 false。有关如何解决此问题的任何想法?

【问题讨论】:

    标签: jquery ajax caching mobile


    【解决方案1】:

    我只需将其添加到 page2.php 即可使其工作:

    <script type="text/javascript">
    $(document).on('pagehide', 'div', function (event, ui) { 
        var page = jQuery(event.target);
        if (page.attr('data-cache') == 'never') { 
            page.remove(); 
        }; 
    });
    </script>
    

    并将&lt;div data-role="page"&gt; 更改为&lt;div data-role="page" data-cache="never"&gt;

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      相关资源
      最近更新 更多