即使用户单击“将PHP变量传递给javascript”;“后退”;
让我们从一个典型的PHP/html/JavaScript环境开始。跳过即使用户单击“将PHP变量传递给javascript”;“后退”;,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,让我们从一个典型的PHP/html/JavaScript环境开始。跳过和假设我们有: <script> var foo = <?php echo generateFoo(); ?>; </script> 是的,我已经尝试停止缓存。它在BFCache中不工作。代码示例: window.addEventListener("pageshow", function (event) { var historyTraversal = event.persi
和
假设我们有:
<script>
var foo = <?php echo generateFoo(); ?>;
</script>
是的,我已经尝试停止缓存。它在BFCache中不工作。代码示例:
window.addEventListener("pageshow", function (event) {
var historyTraversal = event.persisted ||
(typeof window.performance != "undefined" &&
window.performance.navigation.type === 2);
if (historyTraversal) {
// Reload the page.
window.location.reload();
}
});
是的,你说得对。你应该在每个请求中获取一个新的
foo
。我也这么怀疑,但我在任何地方都找不到没有更新div框内容的ajax示例。我只是不知道正确的语法。但我不确定Ajax请求是否能解决您的问题。如果页面是从缓存加载的,通常意味着也不会触发任何“onload”事件。因此,除非您强制用户单击某个链接/按钮来触发Ajax请求,否则我打赌您最终会遇到同样的问题。@MagnusEriksson好吧,这当然可以解释为什么我找不到一个有效的示例。这在以前被问过很多次,并且得到了不同的建议和解决方案,取决于询问者的需要。在谷歌上搜索“强制页面在后退按钮上重新加载”,并检查是否有任何问题的解决方案适合您的情况。这将需要一些时间来测试。(我无法在本地主机上复制此问题。)我马上回来。我不知道它是如何工作的,但它工作正常。干得好。这是否意味着我现在应该删除我的标题?包含对代码段的解释。代码看起来非常熟悉。我想我试过了,但失败了。不过,它确实有效。不管我怎么努力,我都无法打破它。最好不要猜测我最后尝试的代码是什么。
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0 ");
?>
window.addEventListener("pageshow", function (event) {
var historyTraversal = event.persisted ||
(typeof window.performance != "undefined" &&
window.performance.navigation.type === 2);
if (historyTraversal) {
// Reload the page.
window.location.reload();
}
});