浏览器缓存破坏了我的客户端路由器

时间:2018-03-14 11:40:44

标签: javascript html url browser

我正在开发一个网络应用程序,我使用客户端路由(基本上,我们使用URL中#之后的内容加载页面。)

但是,我注意到有时当我走一页然后我去另一页时,旧的是加载而不是新的。让我解释当我点击链接去任何我想要的地方时,我正在加载的页面正在加载。

我非常怀疑浏览器缓存会“覆盖”新内容。

  

我仍然不知道为什么它有时会发生(特别是当它是一个新的浏览器窗口时)。

是否有任何强制浏览器打开新页面的解决方案,例如在其他页面中打开页面以及关闭旧标签页?

修改

我目前正在使用GitHub页面来托管我的项目,所以在你的回答中,确保一切都是客户端。

2 个答案:

答案 0 :(得分:1)

我找到了一个解决方案:在新标签页中打开我的链接,同时关闭旧标签。

可以使用以下代码完成:

byteArrayContent.Headers.Add("Content-Type", "multipart/form-data");

答案 1 :(得分:0)

您可以在所有请求中设置服务器的以下标头:

Cache-Control: no-cache 

这将禁用该文件/响应的缓存。如果您使用的是expressJS服务器,则可以将其设置为:

function nocache(req, res, next) {
  res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
  res.header('Expires', '-1');
  res.header('Pragma', 'no-cache');
  next();
}

并将此功能用作要禁用缓存的所有路由的中间件。

您可以在MDN Docs

上阅读有关缓存标头的更多信息