我正在编写一个Chrome应用,用户可以创建和编辑笔记(纯文本),我希望这些笔记可以离线保存。
我了解到HTML5提供了几种存储解决方案:localStorage、Web SQL DB、Application Cache。考虑到它们提供的大小、速度和使用便利性,请问您如何选择其中一种?
我了解到HTML5提供了几种存储解决方案:localStorage、Web SQL DB、Application Cache。考虑到它们提供的大小、速度和使用便利性,请问您如何选择其中一种?
localStorage
是迄今为止最简单的解决方案,也是您应该在此任务中使用的方案。它允许您存储字符串,只要您的数据可以被表示为字符串-它就会工作(通常惯例是在保存之前将非字符串数据转换为JSON,然后再解析回来)。
WebDB
是您的普通数据库。如果您需要在多个表格上运行复杂的查询,则可以使用它。对于存储笔记来说,这可能有些大材小用。
应用程序缓存
是完全不同的东西,我不知道您如何在此应用它。它用于缓存HTML页面和资源。
这实际上是一个键值数据库,你可以使用它来代替cookie存储设置或其他用途,例如像服务器上的memcache组件。我个人会将其用于需要缓存的数据。
我认为你指的是通过清单文件进行缓存。这应该作为其他缓存使用的补充。这允许你在用户设备上缓存实际资源,例如图像、javascript文件和html文件,以便在他们断开与互联网的连接时,仍能在你的应用程序中使用它们。
这是一个想要存储用户数据的数据库,你可能想将其用于在服务器上存储的SQL数据库中的数据。
打包应用程序无法使用Web SQL数据库或localStorage。WebSQL规范已被弃用一段时间,而localStorage同步处理数据(这意味着它可能很慢)。Storage API异步处理数据。
IndexedDB是推荐的存储机制。