我正在编写一个Chrome应用程序,用户可以在其中创建和编写笔记(纯文本),我希望这些笔记可以离线保存。
我了解到html5有多种存储解决方案:localStorage
,Web SQL DB
,Application Cache
。我想知道你如何选择它们的建议,考虑它们提供的尺寸,速度和使用的便利性。
答案 0 :(得分:6)
localStorage
是迄今为止最简单的解决方案,也是您应该用于此任务的解决方案。它允许您存储字符串,因此只要您的数据可以表示为字符串 - 它将起作用(通常的做法是在保存之前将非字符串数据转换为json,然后再解析)。
WebDB
是您的普通数据库。如果需要跨多个表对数据运行复杂查询,则可以使用它。为了存储笔记,这将是一种过度杀伤。
Application cache
是完全不同的东西,我不知道如何在这里应用它。它用于缓存html页面和资源。
答案 1 :(得分:5)
这基本上是一个键/值数据库,您可以使用它来代替cookie来存储您可能在服务器上使用memcache等组件的设置或其他用例。我个人会将此用于需要缓存的数据。
我假设您的意思是通过清单文件进行缓存。这应该补充您对缓存的其他用途。这允许您在用户设备上缓存实际资源,例如图像,javascript文件和html文件,以便它们在与Internet断开连接时可以在您的应用程序中工作
这是一个您想要存储用户数据的数据库,您可能希望将它用于存储在服务器上的sql数据库中的数据。
答案 2 :(得分:1)
根据这个:https://developer.chrome.com/apps/offline_apps#saving-locally
打包的应用无法使用Web SQL数据库或localStorage。 WebSQL 规范已经被弃用了一段时间,还有localStorage 同步处理数据(这意味着它可能很慢)。存储 API异步处理数据。
IndexedDB是推荐的存储机制。