【问题标题】:Partial SPA App, history navigation renders JSON in view port部分 SPA 应用,历史导航在视口中呈现 JSON
【发布时间】:2019-02-12 08:53:41
【问题描述】:

我们以渐进模式构建了一个相当大的应用程序,因此我们将性能关键页面迁移到 SPA(react、redux、react-router(Router)),而其他页面则在已建立的旧版应用程序中提供服务。

所有 SPA 页面都使用Link 导航,非 SPA 页面通过 html 锚点导航。

我们的 SPA 页面支持整页刷新并从服务器呈现。对于普通的路线导航,使用 ajax 模式的相同页面 url 将保存在商店中的 json 数据发送给我们。

当我们以这种模式导航时,特别是在干净缓存模式的情况下:

  1. 从 SPA 页面开始(服务器端渲染)
  2. 导航到另一个 SPA 页面(异步调用获取 JSON 并更新存储以更新页面呈现)
  3. 导航到非 SPA 页面(传统浏览器导航)
  4. 点击浏览器后退按钮

问题:浏览器在为步骤 2 获取的视口中呈现 JSON 文本

我们试图通过 Cache-Control: 'no-cache, no-store, must-revalidate' 标头来解决这个问题,用于路由导航异步调用,但没有很好地解决这个问题。

我们应该如何处理这个问题?

【问题讨论】:

    标签: javascript reactjs single-page-application


    【解决方案1】:

    这是所需的完整标题:

    header("Cache-Control: no-cache, no-store, must-revalidate");
    header("Pragma: no-cache");
    header("Expires: 0 ");
    

    您尝试过这个完整的解决方案吗?

    【讨论】:

    • 我在这里错过了Expires。 :)
    猜你喜欢
    • 2014-10-15
    • 2018-01-02
    • 1970-01-01
    • 2013-08-05
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多