【问题标题】:HTML5 local storage memory architecture?HTML5本地存储内存架构?
【发布时间】:2014-01-19 15:05:06
【问题描述】:

我在网上浏览了很多资源,但无法获得 HTML5 本地存储使用的内存架构。本地存储中的数据是否在处理时被带入内存(例如缓存)?

另外,如果我想实现我的应用程序在离线模式下工作(存储到本地存储的基本目的),是否可以将数据存储为全局 JSON 对象而不是本地存储。

简而言之,当我登录我的应用程序(跨平台 HTML5 应用程序)时,我会收到大量 JSON 数据。我应该将此数据存储为全局对象还是将其存储在内存中。

【问题讨论】:

    标签: json html cordova local-storage


    【解决方案1】:

    嗯,这取决于您的信息的敏感程度以及您想要遵循的方法。

    本地存储

    您可以将本地存储用于“临时”数据、传递参数和一些配置。价值观。应该谨慎使用 AFAIK 本地存储,因为存储的信息不能确保始终存在,因为它可以被删除以回收一些设备内存或清理过程。但您可以毫无顾忌地使用它。

    要将 JSON 存储在本地存储中,您必须对对象进行字符串化以将其存储在本地存储键中。 JSON.stringify() 函数将为您解决问题。

    到目前为止,我还没有找到官方信息,但我认为你可以存储在本地存储中的 MB 是有限的,但我认为这不是通过 cordova 直接控制的。同样,这不是官方数据,如果您的 JSON 表示法的数据非常大,请记住这一点。

    将数据存储为全局对象 如果您有一些变量或在应用程序内的函数之间共享的数据以简化访问,则将数据存储为全局对象可能很有用。但是请记住,如果应用重新启动、停止、崩溃或退出,存储在全局变量中的数据可能会丢失。

    如果不是敏感信息或者您可以稍后恢复,请继续使用本地存储或全局变量。

    永久存储 对于敏感数据或更永久的信息,我建议将您的 JSON 数据存储在应用程序文件系统中。那就是将您的 JSON 数据写入文件,并在需要时从文件中恢复信息并将其存储在变量中以访问它,这样,如果您的应用程序处于脱机状态,或者应用程序重新启动或退出,您始终可以恢复来自文件系统的信息。丢失该数据的唯一方法是从设备中删除该应用。

    就我而言,我正在开发的应用程序中使用这三种方法,因此只需决定哪种方法最适合您和您的需求。

    【讨论】:

    • 非常感谢您的详细回复。我不能真正去永久存储,因为数据是从服务器动态获取的。我可以使用全局变量,但我担心它会导致代码过于复杂。我目前正在使用本地存储,但我担心的是 1)是否有任何使用本地存储的标准(比如所有数据都应该保存在本地存储中),2)如果我存储数据会导致糟糕的设计模式来自本地存储 3) 中的服务,如果我使用本地存储会导致性能下降。
    • 关于 cmets,1) AFAIK 没有一成不变的指导方针或标准。由您决定如何使用它。 2)好吧,很难回答,如果只是时间数据,我会考虑将数据存储在那里有多方便,如果是这样,请继续,如果它更明智,也许最好的事情是另一种选择。 3)我不这么认为,访问速度非常快,除非您有大量数据,否则不会施加繁重的任务。您始终可以使用永久存储并在每次提取时重写所有内容。
    • 也许这会有所帮助:coding.smashingmagazine.com/2010/10/11/… 另外,如果 Apple 施加某些限制,我不确定 App Store 流程是否批准,我还没有经验,因为我正在开发的应用程序是在应用程序之外供私人使用的店铺。也看看这个w3.org/TR/webstorage
    • 感谢 VicM,您的 cmets 确实很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 2011-07-28
    • 2016-03-04
    • 2013-06-08
    • 2011-04-12
    相关资源
    最近更新 更多