【问题标题】:java script queries not showing results until temporary internet files deleted在删除临时 Internet 文件之前,javascript 查询不显示结果
【发布时间】:2013-07-25 21:15:15
【问题描述】:

我有一些网页使用php 调用SQL 服务器,还使用JavaScript 加载下拉框和页面内容。问题是当我使用页面对 SQL 数据库进行更改时,工作正常,这些更改不会反映在下拉列表中,直到我删除临时 Internet 文件并刷新页面。

如何清除所需的文件,以便正确显示数据?

【问题讨论】:

  • 您需要在响应中设置适当的缓存控制标头,以便浏览器知道它不能缓存它们(或者知道缓存它们的有效时间)。
  • 您是否指定不应缓存这些下拉菜单的内容?因为听起来您正在返回没有任何缓存控制指令的内容,并且浏览器(可以理解)使用其缓存的本地副本来避免返回到您的服务器,所以您得到的是陈旧的数据。
  • @RichardGriffiths:它是“JavaScript”。不是“Java 脚本”。
  • @Tim 谢谢蒂姆。这是我第一次这样做,因此是小步骤。我如何指定它们不应该被缓存
  • 即使没有正确的标头,这听起来也像是非常激进的缓存。大多数浏览器会在点击几下刷新后获取一个新的 html 页面。您是否使用 PHP 生成包含下拉菜单数据的 Javascript 文件?

标签: php javascript sql


【解决方案1】:

为防止浏览器缓存您的内容然后提供该(陈旧)内容,您可以设置标头,说明您的内容不应存储在缓存中,这将强制浏览器从您的服务器每次加载页面时,确保每次加载最新的内容。

How to set HTTP headers (for cache-control)? 有信息,但您会想使用 NO-CACHE 而不是 PUBLIC,因为该张贴者试图启用缓存,而您正试图禁用它。如果你愿意,你可以做更复杂的事情(例如,如果你知道你的数据库每小时只更新一次,你可以设置缓存控制标头,说明可以缓存内容,但只能到小时),但对于你所描述的,简单地禁止缓存似乎是你想要的。

我从未做过任何 PHP,但 this page 似乎展示了如何做 PHP 端。

【讨论】:

    猜你喜欢
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 2015-09-08
    相关资源
    最近更新 更多