我的一位开发人员刚刚刚开始在一家新公司工作,他的一项任务是提出一个新的网络应用程序,当他们的员工在远程位置的现场工作,然后再与他们同步时,他们的用户可以离线工作。他们还没有确定服务器端提供商的服务器端数据库(我猜它将是SQL Server)。
我已经做了一些环顾四周,似乎有两个可行的选择是LocalStorage和IndexedDb,LocalStorage是更受欢迎的技术?他们想要HTML5,这一切都很好,花花公子,但长话短说我的问题是......
在Web应用程序中离线存储数据的概念似乎并不是一个新想法,但在今天的最新技术(html5,asp.net 4.0 / 4.5)中这样做是您开始进入稀疏探索领域的地方。
任何基于证据的智能回复很可能会得到我的支持,所以不要急于得到第一个答案,并尝试获得一些快速积分,我在这里寻找一些好的可靠反馈。谢谢。
答案 0 :(得分:4)
HTML5中有多种离线存储可能性: 网络存储 Web SQL数据库 IndexedDB的 文件系统API
您可以在这里找到所有这些选项:
http://www.html5rocks.com/en/tutorials/offline/whats-offline/#toc-older-storage
与较旧的选项(Cookies,基于插件的存储,特定于浏览器的功能)相比,我将引用文章:
“较新的存储API,我们称之为”HTML5存储“,在开放性和标准合规性方面通常都是优越的。当然,并非所有浏览器都包含所有新API,您可能必须支持旧版浏览器根本不包括它们中的任何一个。所以旧技术对于优雅降级仍然有用。“
其他有用的链接:
http://php-html.net/tutorials/html5-local-storage-guide/
http://www.tutorialspoint.com/html5/html5_web_sql.htm
希望这会有所帮助......
答案 1 :(得分:3)
我认为您最好的选择是使用本地存储,因为它是HTML5下可用的最广泛实施的存储选项标准。
IndexedDB已被过度设计(在我看来),并且对于Mozilla所有的坚持its better than sliced bread并且WebSQL的未来看起来像Mozilla is refusing to implement it和由于W3C与实际实施它的浏览器供应商(Chrome / Safari / Opera)之间的僵局,它已no longer being worked。
由于采用智能手机,目前有一些浏览器爆炸式增长,因此很难确定市场中有多少支持HTML5 LocalStorage功能,但使用statcounter我已经能够在Chrome之间计算出来( 4 +),Firefox(3。+),Safari(4 +),Opera(10.5+)和IE(8+),包括iPhone和Android设备,你将占据80-85%的市场份额,数字上涨率为每月1-2%。其余的是IE 6/7(顽固地倾向于坚持),旧版本的新浏览器(具有通常保持最新状态的更新功能),以及一些移动浏览器在石器时代停滞不前。
对于较旧的选项,我会将IE6 / 7的User Data Persistence添加到@ user998692提供的列表中,但无论哪种方式,您都会遇到大量浏览器不兼容问题并支持大杂烩 - 技术笨拙,会使您的代码库和测试变得复杂,并相应地增加您的交付时间(和成本)。但是,如果你确实想走这条路,我建议你看看PersistJS,因为把它放在一起的人已经做了很多你已经需要的工作。
这些天它值得期待(在你的应用程序传播和获得广泛的用户群的1-2年时间内市场会是什么样子)而不是倒退,所以我会说HTML5 LocalStorage可能是你最好的选项。