【问题标题】:Chrome displaying the previous data even after reloading the page即使在重新加载页面后,Chrome 也会显示以前的数据
【发布时间】:2018-06-05 06:19:16
【问题描述】:

我正在开发一个单页应用程序。而且我有一个页面在加载该页面时会发出服务器请求。我做了一些更改并部署在服务器上。但是当我使用实时版本应用程序时,它并没有反映更改以及我所做的任何更改都会在数据库中更新,但在重新加载后它再次显示旧记录。这不会发生在本地环境中。

接下来我尝试手动删除 cookie,然后刷新页面。现在它反映了当前的变化。但这让我想到了一些问题。

  1. 由于向服务器发出请求并拉出记录 从数据库到显示。那么为什么chrome显示旧的 数据 ?
  2. 是因为cookies吗?如果是那么是什么 此类问题的解决方案。因为对于最终用户来说,他们可能 不知道要删除cookie。我能想到的一种解决方法是在页面加载时删除旧的 cookie,但是这个解决方案就像没有 cookie。
  3. 是否只发生在 V8 中?蜘蛛猴或其他呢? javascript 运行时环境?

问候

【问题讨论】:

  • 你能检查缓存吗
  • 但是,如果服务器正在发送更新的数据,为什么 chrome 会显示旧记录?
  • 这与 JavaScript 关系不大,而与您的服务如何通过缓存机制处理 HTTP 请求有关。除非您使用的是service worker,否则请忽略上述内容。
  • 浏览器总是先在缓存中查找
  • @PatrickRoberts 服务工作者帮助运行应用程序,即使它处于脱机状态。但是应用程序没有下线,因为我可以看到 db 中的一些变化。而且我没有使用服务人员

标签: javascript angularjs google-chrome v8 spidermonkey


【解决方案1】:

这可能是由于请求缓存而发生的。我肯定在某些浏览器中看到了这一点。您正在访问相同的请求网址,不是吗?尝试将随机 guid 附加到 url,使其看起来像“/url?guid=...”。

【讨论】:

  • 这是一个单页应用程序。它在同一个网址上。即使有缓存,chrome 也不会用更新的缓存值重写缓存值?
  • 按 F12 键,打开“网络”选项卡并重新加载页面。如果缓存了某些内容,您将在“大小”列中看到“(来自磁盘缓存)”。检查这个只是为了确保它被/没有被缓存。
  • 缓存已被禁用
【解决方案2】:

在 ajax 调用中,请检查是否设置了 cache:true,设置为 true 会缓存请求并显示较旧的响应。设置 cache:false 应该会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多