我通过阅读会话变量来显示购物车产品。
如果在 page1 中添加了产品,我正在设置会话数组变量。导航到之后 第2页我正在加载会话内容以在第2页中的购物车中显示产品。
然后,如果我在第2页中添加任何产品,然后转到第1页,则第1页不显示刷新的内容,而是从中获取内容page1缓存。
但是当我做F5或CTRL + F5时,它运作正常......
我希望每次访问时都会从缓存中加载不页面,即使它是同一页面。
这是我的代码:
<?php
echo "<script>
$(document).ready(function() {";
echo "add1('".$session_variable."')";
echo "});</script>";
?>
<script>
add1(item)
{
document.getElementById('ItemName').value=item;
}
<script>
编辑:我使用 onclick事件从第1页导航到Page2,如下所示..
<a onclick="window.location='page2.php'" style="text-decoration:none">Page2</a><br>
<a onclick="window.location='page1.php'" style="text-decoration:none">Page1</a><br>
我添加了以下几行,但没有用。
<META HTTP-EQUIV="Pragma" CONTENT="no-cache,must-revalidate">
<META HTTP-EQUIV="Expires" CONTENT="-1">
答案 0 :(得分:2)
你如何背靠背导航一个,你有一个被点击的网址导航回来还是你使用window.history.back()?
如果您使用javascript导航回来,则可能是问题所在。当导航回到第1页时,使用一个带有缓存中断的URL,就像这样
window.location.href = "/page1.php?cb=" + Math.random();
答案 1 :(得分:1)
有一些可能性:
答案 2 :(得分:0)
重定向/或截取f5键/使用参数调用页面,如:
$(document).ready(function() {
var dfocus = $("input");
dfocus.keydown(function(e) {
if (e.keyCode == 116 ) { //f5
document.location.href="mypage.php?id="+Math.random(); // this may enforce to reload the page
}
...
然后您将强制加载页面。 (与带缓存的img src逻辑相同)
答案 3 :(得分:0)
请尝试添加
索引页面上的代码中的<?php echo "<!--" . rand(0,9999999) . "-->"; ?>
。
然后请再次尝试上述步骤并告诉我结果。
并尝试添加
<?php
if(!session_id()) {
@session_start();
}
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate( 'D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
if(isset($_SESSION['form_submitted'])) {
unset($_SESSION['form_submitted']);
header('Location: ?' . uniqid());
#header('Refresh: 0');
}
?>
答案 4 :(得分:0)
默认情况下,window.location使用assign()来改变位置,通常这已经足够好但我认为你可以使用replace()来获得所需的结果。像这样的东西: window.location.replace(&#39; page1.php中&#39)