【问题标题】:Which HTML5 offline storage solution should I use for storing user notes in my web app?我应该使用哪种 HTML5 离线存储解决方案在我的 Web 应用程序中存储用户笔记?
【发布时间】:2011-09-16 11:39:24
【问题描述】:

我正在编写一个 Chrome 应用程序,用户可以在其中创建和编写笔记(纯文本),我想离线保存笔记。

我从html5了解到有几种存储解决方案:localStorageWeb SQL DBApplication Cache。考虑到它们提供的尺寸、速度和使用便利性,我想知道您对如何选择它们的建议。

【问题讨论】:

    标签: javascript html local-storage offline


    【解决方案1】:

    据此:https://developer.chrome.com/apps/offline_apps#saving-locally

    打包的应用程序不能使用 Web SQL 数据库或 localStorage。 WebSQL 规范已经被弃用了一段时间,localStorage 同步处理数据(这意味着它可能很慢)。存储 API 异步处理数据。

    IndexedDB 是推荐的存储机制。

    【讨论】:

      【解决方案2】:

      本地存储

      这基本上是一个键/值数据库,您可以使用它而不是 cookie 来存储设置或其他用例,您可能会在服务器上使用 memcache 等组件。我个人会将此用于需要缓存的数据。

      应用缓存

      我假设您的意思是通过清单文件进行缓存。这应该补充您对缓存的其他用途。这允许您在用户设备上缓存实际资源,例如图像、javascript 文件和 html 文件,以便它们在与 Internet 断开连接时可以在您的应用程序中工作

      Web SQL 数据库

      这是一个您要在其中存储用户数据的数据库,您可能也希望将它用于存储在服务器上的 sql 数据库中的数据。

      【讨论】:

        【解决方案3】:

        localStorage 是迄今为止最简单的解决方案,它是您应该用于此任务的解决方案。它允许您存储字符串,因此只要您的数据可以表示为字符串 - 它就可以工作(通常的做法是在保存之前将非字符串数据转换为 json,然后解析返回)。

        WebDB 是您的普通数据库。如果您需要跨多个表对数据运行复杂的查询,则可以使用它。对于存储笔记,这将是一个矫枉过正。

        Application cache 是完全不同的东西,我不明白你如何在这里应用它。用于缓存html页面和资源。

        【讨论】:

        • 本地存储是(imo)要走的路。任意限制为 5 MB(一些浏览器支持更多,但这似乎是最小值)。使用 5 MB,您很可能不会用纯文本耗尽空间。
        • 很好,但我不同意这个任务的 localStorage。对于任意数量的笔记,包含 (id, subject, body) 的简单表可能比读取/写入整个数组到 localStorage 键更合适。
        • 我认为 localStorage 非常适合,为什么不使用多个键,每个音符一个 - 每个都有一个 JSON 对象?
        • localStorage 操作是同步的,它们可能会阻塞 UI,如果它们支持并且不支持 localStorage,您认为将数据存储在 indexedDB 上是否是个好主意? (有框架支持吗?)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-15
        • 2015-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多