先发制人地获取带有HTML5离线清单的页面或仅获取其数据 背景
我有一个(美化的)CRUD应用程序,我希望能够支持HTML5离线支持。缓存清单系统看起来简单但功能强大,但我很好奇如何允许用户在脱机时访问数据 例如,假设我有实体“案例”的这些页面(即,这是CRM案例管理软件): 第一个URI包含所有案例的分页列表,使用查询字符串参数先发制人地获取带有HTML5离线清单的页面或仅获取其数据 背景,html,offline,offlineapps,Html,Offline,Offlineapps,我有一个(美化的)CRUD应用程序,我希望能够支持HTML5离线支持。缓存清单系统看起来简单但功能强大,但我很好奇如何允许用户在脱机时访问数据 例如,假设我有实体“案例”的这些页面(即,这是CRM案例管理软件): 第一个URI包含所有案例的分页列表,使用查询字符串参数pageIndex和pageSize,例如/Case?pageIndex=2&pageSize=20 第二个URI是用于编辑单个案例的模板,例如/Case/1或/Case/56 最后,/Case/Create是用于创建案例的表单 问
pageIndex
和pageSize
,例如/Case?pageIndex=2&pageSize=20
第二个URI是用于编辑单个案例的模板,例如/Case/1
或/Case/56
最后,/Case/Create
是用于创建案例的表单
问题
我希望这三个都可以脱机使用
/案例
简单的方法是将/Case
添加到缓存清单中,但是这会中断分页(因为链接不起作用)
我想我可以添加类似于/Case/AllData
的内容,这是一个XML资源,它被缓存,如果脱机,那么/Case
上的脚本将使用此XML数据填充列表并提供分页
如果我选择后者,如何将这些XML数据存储在浏览器中的SQL数据库中,而不是作为缓存资源?我认为使用SQL数据库会更有弹性
/Case/{id}
这更复杂。有一个简单的解决方案,可以手动添加/Case/1
,/Case/2
,/Case/3
等。。。到/Case/1234
,但可能有数百甚至数千个案例,因此这不是很实用
例如,我认为该系统应该提供对最近30起案件的访问。如上所述,如何将这些数据存储在数据库中
还有,这将如何工作?如果我没有显式地将/Case/34
添加到清单中,并且用户单击/Case/34
,我如何让浏览器加载一个页面,我的JavaScript将根据浏览器的SQL数据库数据填充该页面,而不显示脱机消息
/案例/创建
这一个更简单-因为它只是一个空页面,在
的提交
操作中,我的脚本会检测它是否脱机,如果它脱机,它会将它添加到浏览器的SQL数据库中。这听起来可以吗
谢谢 我认为您需要考虑本地存储数据库(尽管它确实有一些缺点),但还有其他选择,如WebSQL和IndexedDB 另外,我不认为您应该使用数字Id,如果您允许人们创建,因为您将遇到主键冲突,那么最好使用GUID之类的东西 您需要的另一件事是能够将这些新案例推送到服务器上。可能有多个 它们可以编辑吗?如果可以,我认为你真的需要认真考虑同步和冲突解决,如果是这样的话 无耻的自我推销,我有一个项目,旨在处理这些问题,虽然没有完成,但已经接近尾声。你可以在网站上看到它(一个丑陋但功能强大的)演示
http://myapplication.com/Case
http://myapplication.com/Case/{id}
http://myapplication.com/Case/Create