【发布时间】:2019-02-12 08:53:41
【问题描述】:
我们以渐进模式构建了一个相当大的应用程序,因此我们将性能关键页面迁移到 SPA(react、redux、react-router(Router)),而其他页面则在已建立的旧版应用程序中提供服务。
所有 SPA 页面都使用Link 导航,非 SPA 页面通过 html 锚点导航。
我们的 SPA 页面支持整页刷新并从服务器呈现。对于普通的路线导航,使用 ajax 模式的相同页面 url 将保存在商店中的 json 数据发送给我们。
当我们以这种模式导航时,特别是在干净缓存模式的情况下:
- 从 SPA 页面开始(服务器端渲染)
- 导航到另一个 SPA 页面(异步调用获取 JSON 并更新存储以更新页面呈现)
- 导航到非 SPA 页面(传统浏览器导航)
- 点击浏览器后退按钮
问题:浏览器在为步骤 2 获取的视口中呈现 JSON 文本
我们试图通过 Cache-Control: 'no-cache, no-store, must-revalidate' 标头来解决这个问题,用于路由导航异步调用,但没有很好地解决这个问题。
我们应该如何处理这个问题?
【问题讨论】:
标签: javascript reactjs single-page-application