在DOM中存储全局变量的javascript
javascript storing global variables in DOM
我有一个相当大的脚本,其中包含大约 60 个全局变量。我正在考虑使用命名空间模式来封装我的脚本,并且只有一个引用一个对象的全局变量。
尽管这种模式被认为是最佳实践,但我也在考虑另一种选择:将全局变量存储在 DOM 中,隐藏的div 中,并使用 $('#MyGlobalVar1').text()
访问它们。这是个好主意吗?
感谢您的建议。
不,这不是一个好主意。
它用非语义数据污染了 DOM,效率也较低。这甚至比污染全局JS命名空间更糟糕,更糟糕的是,它只允许您存储字符串。
即使我建议您使用命名空间对象来保存和引用数据,您也可以简单地在代码周围放置一个外部自调用函数,以防止破坏全局对象。
所以你从
var global1 = true,
global2 = true;
到
(function() {
var global1 = true,
global2 = true;
// rest of all app logic
}());
除此之外,由于您使用的是jQuery,因此您还可以使用jQuerys .data()
方法。它旨在引用特定节点的数据,但它也在内部存储到 ECMAscript 对象中。
相关文章:
- 没有通过ajax调用设置Javascript全局变量
- Javascript全局变量简单解决方案
- 用作标志的Javascript全局变量
- Javascript全局变量问题
- 函数内部的JavaScript全局变量定义
- Selenium Web驱动程序访问Jquery中的Javascript全局变量
- Javascript全局变量在mouseup上总是未定义的
- Javascript全局变量存储在哪个对象中
- nodejs中的Javascript全局变量和属性-全局属性有时会被删除
- Javascript:全局变量转到“窗口”或“全局”,但全局函数不会.全球 FN 去哪儿了
- JavaScript 全局变量声明
- 与javascript全局变量范围和更新混淆
- 通过 Excel VBA 引用 Acrobat Javascript 全局变量所需的语法是什么?
- Javascript - 全局变量和全局范围内的变量是否不同(在 jsfiddle 中)
- Javascript 全局变量命名冲突
- Javascript:全局变量=坏
- Javascript 全局变量在回调函数之外不会保持不变
- javascript 全局变量不能存储值,如果它意味着从 HTML 元素中提取它们
- 创建/访问在 AJAX 调用中创建的 Javascript 全局变量
- 拼接上的Javascript全局变量作用域/覆盖