post - HTML5 应用程序缓存不适用于 POST 请求

标签 post html caching get

我正在开发一个 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/

相关文章:

jquery - 在 Twitter Bootstrap 中对齐可折叠按钮

asp.net - ASP CSS 页面是否仍会像普通 CSS 页面一样被缓存?

cakephp - 使用 jQuery 拦截 cake2 postLink() 表单帖子

api - 使用 httpotion elixir 发布到 slack api

javascript - 如何清除 selectize.js 下拉列表

c# - 数据库表的 Entity Framework 和本地缓存

caching - Yii2 Assets 包 : How to set headers?

java - 使用http发送二进制数据

android - 如何使用 http 将 Android 中的文件从移动设备发送到服务器?

android - Firefox for Android 和 HTML5 canvas 透明度错误