全局变量VS localStorage在Web应用程序和内存问题

时间:2014-12-04 19:39:57

标签: javascript html5 cordova

我想知道哪种方法更好。使用全局变量对会话内持久性进行污染全局命名空间,还是使用localStorage?

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

是否会提高内存效率?

2 个答案:

答案 0 :(得分:4)

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

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

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

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

  • 设置和获取速度很慢,可能是大型数据集的性能瓶颈
  • 只允许字符串;您可能必须在设置
  • 之前序列化数据

如果您的用例涉及会话间存储,我肯定会投票支持LocalStorage。但是,在您的场景中,您看到的唯一好处是removeItem函数,您可以为全局变量删除对应函数。

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

答案 1 :(得分:0)

现在考虑在Angular之类的框架中使用DI。