Javascript web应用程序中的全局变量与本地存储和内存问题

Javascript web应用程序中的全局变量与本地存储和内存问题,javascript,html,cordova,Javascript,Html,Cordova,我想知道哪种练习会更好。使用全局变量污染全局命名空间以实现会话内持久化,还是改用本地存储 换句话说,在启动时设置一个全局变量,在需要时在函数中更改其值并在第三个函数中引用它,或者在不再需要该值时使用localStorage.setItem然后使用localStorage.removietem 执行其中一项操作是否会提高内存效率?本地存储主要用于跨会话的持久数据。 在您的情况下,在寻找会话内持久性时,全局变量具有明显的优势 我将首先从全局变量的cons开始 它使用全局名称空间,任何第三方js代码

我想知道哪种练习会更好。使用全局变量污染全局命名空间以实现会话内持久化,还是改用本地存储

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


执行其中一项操作是否会提高内存效率?

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

我将首先从全局变量的cons开始

  • 它使用全局名称空间,任何第三方js代码都可以对其进行操作
  • 页面刷新可以擦除您的数据
好了,就这样。如果我们考虑局部存储的缺点,列表会引起你的眉毛。

  • 设置和获取速度较慢,可能成为大型数据集的性能瓶颈
  • 只允许使用字符串;在设置之前,您可能必须序列化数据
如果您的用例涉及会话间存储,我肯定会投票支持LocalStorage。但是,在您的场景中,您看到的唯一好处是removietem函数,对于该函数,您有全局变量的delete对应项


这篇文章可能有帮助:

现在考虑在Dr.O/P>之类的框架中使用DI来检查这个测试。