考虑具有以下代码的 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 。有想法该怎么解决这个吗?