我有一个在页面加载时执行的javascript函数,如下所示:
if (isTrue()) {
$.post("check.php", { value: 'true' } );
} else {
$.post("check.php", { value: 'false' } );
}
check.php看起来像这样:
if ($_POST['value'] == 'true') {
$_SESSION['value'] = true;
} else {
$_SESSION['value'] = false;
}
我的问题是,如果函数isTrue()被更改为返回false,并且我转到IE,我需要刷新页面两次以查看它已被更改。如果我再次将它设置为true,同样的事情,当我第一次刷新更新时,再次刷新时,现在它们就是。
这个奇怪的事情可能是什么原因?
感谢您的任何意见!
答案 0 :(得分:1)
这是因为$ _SESSION,$ _SESSION ['value']已经设置,但是在你再次刷新之前你没有看到那个结果,因为页面已经使用旧值加载了。
答案 1 :(得分:0)
也许是某种缓存问题? 尝试在更改后清除浏览器缓存,如果仍需要第二次刷新,请参阅。
答案 2 :(得分:0)
这可能是jQuery AJAX缓存的结果。我自己也遇到过类似的问题。
尝试将其关闭:
$.ajax({
type: "POST",
url: "check.php",
data: { value: 'true' },
cache: false
});
还可以尝试摆弄请求以检查它们是否确实存在,以确认它是否是缓存问题。