是否将JSON存储在推荐的具有单独数据属性的数据属性中?

时间:2013-06-04 06:05:36

标签: javascript html5

我正在为加载选项的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数据的单个数据属性或每个所需值具有单独的数据属性是否更好。

2 个答案:

答案 0 :(得分:2)

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

通过更改或编辑

编辑,我的意思是在客户端浏览器中动态编辑它们。

希望这会有所帮助。

答案 1 :(得分:1)

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

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

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

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;
}

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