全局变量 VS Web 应用中的本地存储和内存问题
Global variables VS localStorage in web app and memory issues
我想知道哪个是更好的做法。使用全局变量污染全局命名空间以实现会话内持久性还是改用 localStorage?
换句话说,在启动时设置一个全局变量,在需要时在函数中更改其值并在第三个函数中引用它,或者使用localStorage.setItem
然后在不再需要该值时localStorage.removeItem
?
做任何一个都会提高内存效率吗?
LocalStorage 主要用于跨会话的持久数据。在您的情况下,当您寻找会话内持久性时,全局变量具有明显的优势。
我将首先从全局变量的缺点开始。
- 它
- 使用全局命名空间,任何第三方js代码都可以操作它
- 页面刷新可能会擦除数据
嗯,就是这样。如果我们考虑LocalStorage的缺点,该列表将引起您的注意。
- set 和 get 速度很慢,可能会成为大型数据集的性能瓶颈
- 只允许字符串;在设置之前,可能必须序列化数据
如果您的用例涉及会话间存储,我肯定会投票给 LocalStorage。但是,在您的方案中,您看到的唯一好处是 removeItem 函数,您具有全局变量的删除对应项。
本文可能会有所帮助: http://www.sitepoint.com/html5-browser-storage-past-present-future/
现在考虑在像Angular这样的框架中使用DI。
相关文章:
- 将Dojo网格与内存存储一起使用
- 将pased函数的参数存储在我的内存函数中
- 如何使用java脚本更改浏览器的内存管理以增加会话存储和本地存储的内存
- 我可以在 ExtJS4 中将带有 Rest 代理的存储转换为使用内存代理的存储吗?
- 是存储在 JavaScript 中的内存引用的变量
- javascript 数组的内存存储
- 全局变量 VS Web 应用中的本地存储和内存问题
- 是否可以将一组类存储在内存中,以便我可以在页面上显示它们之前对它们执行操作?(JQuery)
- 蠕变:在蠕变内存中存储对源的引用
- Javascript编号如何存储在内存中
- 使用复选框删除本地内存中存储的项目Jquery
- javascript中可以在内存中存储小数点后的位数
- 是否可以将Javascript函数存储在内存中,以便在网站的多个页面上使用
- 如何在内存存储更改后刷新dojo-gridx
- NodeJS:你可以使用普通的Javascript对象作为内存中的数据存储吗
- 在chromecast内存中存储大文件
- 使用Multer上传文件,并在解析和上传到数据库之前将其短暂存储在内存中
- 有效地在内存中存储大的2d地图
- JS -工厂模式覆盖私有变量存储在内存中
- Javascript文件阅读器在存储到内存-参数1不是类型'Blob'