我今天遇到了这个问题。我正在为网站制作一个迷你购物车,它将显示在每个页面上,除了实际的购物车。
现场性能很重要,因此我决定将购物车中的当前项目临时缓存在本地存储中,以避免不必要的服务器端请求在每个页面加载时获取相同的项目。
由于迷你购物车实际上并未显示在购物车上,因此它仍会监听回调,例如在移除商品时。关键是重置缓存或仅从缓存副本中删除该项目。
我面临的问题:
用户最终进入购物车页面,如果我通过单击链接导航到其他页面,它可能会清除缓存(如果用户在最后一步),它工作正常 - 缓存被清除。
问题是,如果我使用后退按钮(浏览器后退按钮、鼠标后退按钮等),用户会返回上一页,并且我在购物车页面(清除缓存)中所做的更改会被还原!(即使我重新加载页面)
所以问题是:
如果我回去,如何清除本地存储并避免它被恢复?同时在其他浏览器中具有一致的行为。
这cache
只不过是一个项目是本地存储,它会在添加或删除新项目时更新。清除缓存只会删除它(使用 localStorage.removeItem)。