背景
我有一个(美化的)CRUD 应用程序,我想启用 HTML5 离线支持。缓存清单系统看起来简单但功能强大,但我很好奇如何允许用户在离线时访问数据。
例如,假设我有实体“案例”的这些页面(即这是 CRM 案例管理软件):
http://myapplication.com/Case
http://myapplication.com/Case/{id}
http://myapplication.com/Case/Create
第一个 URI 包含所有案例的分页列表,使用查询字符串参数pageIndex
和pageSize
,例如/Case?pageIndex=2&pageSize=20
。
第二个 URI 是用于编辑个别案例的模板,例如/Case/1
或/Case/56
。
最后,/Case/Create
是用于创建案例的表格。
问题
我希望这三个都可以离线使用。
/案子
简单的方法是添加/Case
到缓存清单中,但这会破坏分页(因为链接不起作用)。
我想我可以改为添加类似/Case/AllData
XML 资源的内容,它是缓存的,如果脱机,则脚本/Case
将使用此 XML 数据填充列表并提供分页。
如果我选择后者,我怎样才能将这些 XML 数据存储在浏览器内的 SQL 数据库中,而不是作为缓存资源?我认为使用 SQL 数据库会更有弹性。
/案例ID}
这更复杂。有手动添加/Case/1
,等的简单解决方案/Case/2
,但可能有数百甚至数千个案例,所以这不是很实用。/Case/3
/Case/1234
例如,我认为该系统应该提供对 30 个最新案例的访问权限。如上所述,如何将这些数据存储在数据库中?
另外,这将如何工作?如果我没有明确添加/Case/34
到清单中并且用户单击/Case/34
我如何让浏览器加载我的 JavaScript 将根据浏览器的 SQL 数据库数据填充的页面而不显示脱机消息?
/案例/创建
这个更简单——因为它只是一个空页面,并且在<form>
'submit
操作时,我的脚本会检测它是否离线,如果它离线,它会将其添加到浏览器的 SQL 数据库中。这听起来好吗?
谢谢!