【发布时间】: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