我有一个对象,该对象包含有关用户UI的数据。目前,数据以json的形式出现,我运行JSON.parse评估对象并相应地生成一些HTML。

我正在考虑将json字符串存储在本地会话存储(而不是本地存储)中,并在每次需要用新HTML更新UI时调用它。这样,如果用户在同一浏览器中打开另一个页面,则所有页面的所有HTML都将相同。

目前,该对象存储在内存中,并且用户在UI上的操作与对象的修改之间的交互快速运行。如果我将其序列化并存储在会话存储中,浏览器是否会将数据存储在RAM或硬盘驱动器中并减慢页面速度?

有帮助吗?

解决方案

摘自html5规范:

浏览上下文的生存期可能与实际用户代理进程本身的生存期无关,因为用户代理可能在重启后支持恢复会话。

这意味着浏览器可以将此信息存储到磁盘上。

性能将取决于特定于浏览器和特定于操作系统的实现。但是,获取此信息不太可能成为瓶颈。

其他提示

我做了这个小型测试FF 32,Chrome 37,IE11。只是为了好玩。 通用标签

FF
  • 会话:830毫秒
  • 内存:92毫秒
  • 本地:1156毫秒

    Chrome
    • 会话:2852毫秒
    • 内存:147毫秒
    • 本地:2893毫秒

      IE
      • 会话:977毫秒
      • 内存:81毫秒
      • 本地:15062毫秒

        完成测试后,浏览器窗口冻结了几秒钟,CPU +磁盘活动增加(由localStorage引起)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top