全局变量 VS Web 应用中的本地存储和内存问题

Global variables VS localStorage in web app and memory issues

本文关键字:存储 内存 问题 VS Web 应用 全局变量      更新时间:2023-09-26

我想知道哪个是更好的做法。使用全局变量污染全局命名空间以实现会话内持久性还是改用 localStorage?

换句话说,在

启动时设置一个全局变量,在需要时在函数中更改其值并在第三个函数中引用它,或者使用localStorage.setItem然后在不再需要该值时localStorage.removeItem

做任何一个都会提高内存效率吗?

LocalStorage 主要用于跨会话的持久数据。在您的情况下,当您寻找会话内持久性时,全局变量具有明显的优势。

我将首先从全局变量的缺点开始。

  • 使用全局命名空间,任何第三方js代码都可以操作它
  • 页面刷新可能会擦除数据

嗯,就是这样。如果我们考虑LocalStorage的缺点,该列表将引起您的注意。

  • set 和 get 速度很慢,可能会成为大型数据集的性能瓶颈
  • 只允许字符串;在设置之前,可能必须序列化数据

如果您的用例涉及会话间存储,我肯定会投票给 LocalStorage。但是,在您的方案中,您看到的唯一好处是 removeItem 函数,您具有全局变量的删除对应项。

本文可能会有所帮助: http://www.sitepoint.com/html5-browser-storage-past-present-future/

现在考虑在像Angular这样的框架中使用DI。