次のコードを含む 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 に設定されているため、どちらも意味がありません。これを修正する方法についてのアイデアはありますか?