到目前为止,我总是发送 AJAX 请求,并在请求完成后运行
location.reload()
,更新页面。最近,由于某种原因,重新加载页面时仍保留旧的输入值。我怀疑罪魁祸首是 Firefox 的缓存,因为当我删除缓存或使用 F5 正常重新加载页面时,输入值也会更新。
我尝试了
window.location.href = window.location.href
,同样的事情发生了。
我尝试了
window.location.replace(window.location.href)
,同样的事情发生了。
我做了研究,看到有人建议
location.reload(true)
,效果很好。但是,我还了解到该方法已被弃用,并且已在某些浏览器中删除。我不想在这种不确定性的基础上构建我的代码库。
因此,我的问题是:我可以编写哪些代码来告诉浏览器强制重新加载,删除所有缓存?
我只想删除某些函数中的缓存,而不是全部。我不喜欢形式。
我读过有关不支持重新加载的信息,但这似乎表明它没问题(如果我在这里误解,请有人纠正我,这可能是 Firefox 支持的保证):https://developer.mozilla.org/ en-US/docs/Web/API/Location/reload
我也使用过它,从未遇到过问题,为 Chrome 和 Edge 提供服务。
您还可以尝试在重新加载时使用 ? 将虚拟数据添加到 URL 末尾,尽管我自己没有使用过此方法。
在未来的项目中,Vue、React等前端框架将允许你使用State,这可以防止整个重新加载的情况,将来可能值得检查。