我正在开发一个 Web 应用程序,我完成了必要的步骤来为我的初始登录页面启用 HTML5 应用程序缓存。我的目标是缓存所有图像、css 和 js 以提高在线浏览时的性能,我不打算离线浏览。
我的初始页面包含一个登录表单,其中只有一个用于输入用户名的输入标签和一个将信息作为 POST 请求处理的提交按钮。提交的信息在服务器上进行验证,如果有问题,则重新显示初始页面(这是我目前正在测试的场景)
我正在使用浏览器的开发人员工具进行调试,对于初始请求(通过在浏览器中键入 URL 获取请求)一切正常; list 文件中列出的资源已正确缓存,但是当由于 POST 请求再次显示同一页面时,我注意到以前缓存的所有元素(图像、css、js)再次从服务器获取.
这是否意味着 HTML5 App Cache 仅适用于 GET 请求?
最佳答案
根据 http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#the-application-cache-selection-algorithm在我看来,只允许 GET。
在现代浏览器(支持离线 HTML)中,GET 请求可能足够长以提供必要的数据以取回您需要的数据,而 POST 请求不应该用于幂等(非-改变)。因此,应用程序的架构可能应该允许 GET 请求,如果它是一种离线有用的数据,并通知用户他们需要登录才能将内容发送给他们以供完全离线使用(并且您可以使用线下事件来通知他们尚未完成必要的流程)。
关于post - HTML5 应用程序缓存不适用于 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3980598/