我们有一个以渐进式模式构建的相当大的应用程序,因此我们将性能关键页面迁移到 SPA( react 、redux、 react 路由器(Router)),而其他页面则在已建立的遗留应用程序中提供。
所有 SPA 页面均使用 Link 导航和非 SPA 通过 html anchor 。
我们的 SPA 页面支持整页刷新并从服务器呈现。对于正常的路由导航,使用 ajax 模式的相同页面 url 向我们发送保存在商店中的 json 数据。
有些时候,特别是在干净缓存模式下,当我们以这种模式导航时:
- 从 SPA 页面开始(服务器端呈现)
- 导航到另一个 SPA 页面(异步调用获取 JSON 并更新存储以更新页面呈现)
- 导航到非 SPA 页面(常规浏览器导航)
- 点击浏览器后退按钮
问题:浏览器在第 2 步获取的视口(viewport)中呈现 JSON 文本
我们试图通过用于路由导航异步调用的 Cache-Control: 'no-cache, no-store, must-revalidate'
header 来解决这个问题,但它并没有很好地解决这个问题。
我们应该如何处理这个问题?
最佳答案
这是所需的完整 header :
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0 ");
您尝试过这个完整的解决方案吗?
关于javascript - 部分 SPA 应用程序,历史导航在视口(viewport)中呈现 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54646101/