当使用服务工作人员处理请求时,当我通过单击链接导航离开页面后点击后退按钮时,chrome 实际上会重新提交已提交的表单。
如果没有 Service Worker,Chrome 中的默认行为是显示提交表单时收到的响应的缓存版本。
通过使用 fetch() 处理请求的简单服务工作线程,当我点击后退按钮时,chrome 实际上会重播该请求。
是否有任何简单的方法可以使 Service Worker 的行为方式与 Chrome 默认情况下的方式相同?
一年多前尝试过同样的事情,然后我得出结论,这可能是一个错误,但由于它仍然是这样,我想它应该是这样的。
最佳答案
我在 Firefox 中的后退/前进导航中遇到了类似的问题。我发现最好的做法是嗅探 request.cache 参数中的“only-if-cached”或“force-cache”,并避免首先尝试获取。
有some more documentation here about request.cache但它并没有真正正确记录对服务工作线程获取处理程序的传入请求的使用。
关于javascript - 使用后退按钮时停止服务人员表单重新提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43667405/