Javascript 是否建议将JSON存储在数据属性中而不是使用单独的数据属性?

Javascript 是否建议将JSON存储在数据属性中而不是使用单独的数据属性?,javascript,html,Javascript,Html,我正在为用于加载选项的select元素存储以下数据属性 <select name="DependsOn_Field" data-load='automatic' data-source='web.module().fields' data-value='name' data-display='label' data-filter='exclude_single' id='DependantField'></select> 我的问题是,当需要为单个DOM元素存储多个数

我正在为用于加载选项的select元素存储以下数据属性

<select name="DependsOn_Field" data-load='automatic' data-source='web.module().fields' data-value='name' data-display='label' data-filter='exclude_single' id='DependantField'></select>


我的问题是,当需要为单个DOM元素存储多个数据属性时,最好的方法是什么?最好是使用JSON数据的单个数据属性,还是为所需的每个值使用单独的数据属性。

我认为问题归结为数据属性是静态的?他们可能会改变吗?如果它们将要更改,或者您可能想要编辑它们,那么JSON肯定会更好。但是,如果它们是静态的,您只需要读取这些属性,我认为数据属性很好,这正是数据属性的用途。我知道这看起来很麻烦,因为你有很多属性,但我认为这很好

编辑通过更改或编辑,我的意思是在客户端浏览器中动态编辑它们


希望这有帮助

这完全取决于它们的使用方式

如果您的值是简单的字符串,并且您是从JavaScript访问它们的,那么将它们保存在
data-
属性中可能是有意义的

如果您的值是复杂的JSON对象,那么将完整的JSON值存储在
data-
属性中,并定义一个将读取它的帮助器(为简单起见,假设jQuery可用):


最后,如果数据只是在传递(例如,由服务器写入,然后直接在其他地方读取和发送),那么将整个blob保存在一个
data-
attribute中最有意义。

单个数据属性可能更易于维护,如果将JSON存储在数据字段中,您仍然需要解析JSON。我想属性会更可读,但JSON将是存储大量数据的更合乎逻辑的方式。属性也更容易访问,而JSON需要转换为要读取的对象,如果进行了更改,则需要转换回字符串。理想情况下,您可以使用JavaScript对象来保存数据并链接到一个节点,从而完全避免了这个问题。如果JSON本身不是所需的值,我永远不会使用它来“打包”大量属性。这根本不是它的目的。谢谢你的回答。一个更正是jQuery检查数据属性中的值,如果它以{.Ug,对-我忘记了
$.data
.Ug的恶劣行为。是的-因为解析的魔力,使用
$.data
访问
数据-
属性绝对不应该被使用,因此需要helper函数。在这种情况下,应该更改属性或数据名称(我已经这样做了)。
function getElemData(elem) {
    var $elem = $(elem);
    var elemData = $elem.data("_jsonData");
    if (!elemData) {
        elemData = JSON.parse($elem.attr("data-json-data"));
        $elem.data("_jsonData", elemData);
    }
    return elemData;
}