8

我的一个开发伙伴最近刚开始在一家新公司工作,他的任务之一是开发一个新的 Web 应用程序,允许他们的用户在他们的员工在远程位置现场时离线工作,然后再与服务器端同步他们尚未确定服务器端提供程序的数据库(我猜它将是 SQL Server)。

我环顾四周,似乎有两个可行的选择是 LocalStorage 和 IndexedDb,LocalStorage 是更流行的技术?他们想要使用 HTML5,这一切都很好而且很花哨,但长话短说,我的问题是……

  • 他们在 HTML5 中的离线数据存储选项是什么?
  • 是否有更旧的解决方案具有更好的支持?
    • 这些方法风险较小吗?
    • 实施时间更短?

在 Web 应用程序中离线存储数据的概念似乎不是一个新想法,但在当今最新的技术(html5、asp.net 4.0/4.5)中这样做是您开始进入稀少探索领域的地方。

  • 您的公司可能会做哪些有效的事情,哪些无效?

任何基于证据的智能回复很可能会得到我的支持,所以不要急于获得第一个答案并尝试快速得分,我在这里寻找一些好的可靠反馈。谢谢你。

4

2 回答 2

4

HTML5 中有几种离线存储的可能性: Web Storage Web SQL Database IndexedDB Filesystem API

您可以在这里很好地介绍所有这些选项:

http://www.html5rocks.com/en/tutorials/offline/whats-offline/#toc-older-storage

与较旧的选项(Cookie、基于插件的存储、特定于浏览器的功能)相比,我将引用文章中的内容:

“较新的存储 API,我们可以称之为“HTML5 存储”,在开放性和标准合规性方面通常更胜一筹。当然,并非所有浏览器都包含所有新 API,您可能必须支持不支持的旧浏览器。根本不包括它们中的任何一个。所以旧的技术对于优雅降级仍然有用。

其他有用的链接:

http://php-html.net/tutorials/html5-local-storage-guide/

http://www.tutorialspoint.com/html5/html5_web_sql.htm

希望这可以帮助...

于 2011-11-17T15:42:43.477 回答
3

我认为您最好的选择是使用本地存储,因为它是 HTML5 下可用存储选项的最广泛实施的标准。

IndexedDB 已经过度设计(在我看来),并且由于 Mozilla 坚持认为它比 sliced bread 更好,并且 WebSQL 的未来看起来有点不确定,因为 Mozilla拒绝实施它并且它不是由于 W3C 和实际实现它的浏览器供应商(Chrome/Safari/Opera)之间的僵局,工作时间更长。

由于智能手机的采用,目前正在发生一些浏览器爆炸,因此很难确定有多少市场支持 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 的用户数据持久性添加到 @user998692 提供的列表中,但无论哪种方式,您都会遇到许多浏览器不兼容问题并支持各种技术,其中将使您的代码库和测试复杂化,并相应地增加您的交付时间(和成本)。但是,如果您确实想走这条路,我建议您看看PersistJS,因为将它放在一起的人已经完成了您需要做的大部分工作。

如今,它更值得期待(当您的应用程序正在传播并获得广泛的用户群时,市场会是什么样子),所以我想说 HTML5 LocalStorage 可能是您的最佳选择。

于 2011-11-18T11:32:52.227 回答