【发布时间】:2023-03-11 22:23:01
【问题描述】:
我正在使用 ajax 调用来调用 php 脚本,该脚本通过睡眠等待 40 秒,然后输出 RELOAD。在 JavaScript 中,检查输出是否为RELOAD,如果是,则再次开始调用。
这在我使用的每个页面上都很好用。但在 Firefox 中,在特定情况下存在一个问题。
我在执行这些调用的这个页面上,然后我点击一个链接进入另一个页面。之后,我通过单击历史记录(后退)按钮返回。在这种情况下,调用确实开始了,但 Firefox 似乎已经缓存了结果并立即输出RELOAD。这导致调用只需几毫秒即可加载,并且我没有得到任何实际内容。它甚至没有连接到服务器(我更改了 php 文件,而 ajax 调用继续进行,但没有任何效果)。
所以 Firefox 似乎在您使用后退按钮(或javascript:history.back())的情况下使用缓存输出仅。如果我正常加载页面(通过链接或在地址栏中输入 url),调用确实会正确到达服务器并获取实际内容。
有没有办法可以从 PHP 或 JavaScript 覆盖这种行为?我正在使用jQuery.ajax(),并且设置了“cache:false”选项。
感谢您的帮助!
【问题讨论】:
-
缓存破坏,
$.ajax({... cache:false, ...});. -
编辑:这个选项我已经设置了,忘了说。
-
您是否尝试过一些简单的方法,例如在 URL 中添加一个具有递增值的参数,以便每次 URL 都不同?
-
听起来你想让
$(document).ready()触发history.back()。检查stackoverflow.com/questions/158319/… 或stackoverflow.com/questions/158319/… -
这实际上是我会使用的最后一个解决方案,因为这根本不是很好的编程。
标签: javascript ajax firefox