说我有一个电影列表,其中我使用Javascript和Jquery可以通过HTML控件更改电影的标题,评级和成本。加载页面时将给出这些变量的原始值。 截至目前,我将数据加载到这样的元素:
<div class="movie0" data-rating="320" data-name="Movie-Name No. 1" data-cost="26>
<img src="movie1.png"/>
</div>
<div class="movie1" data-rating="110" data-name="Movie-Name No. 2" data-cost="18">
<img src="movie2.png"/>
</div>
<div class="movie2" data-rating="315" data-name="Movie-Name No. 3" data-cost="25">
<img src="movie3.png"/>
</div>
html控件使用JQuery的.data()函数更改数据。
现在回答这个问题。将信息加载到JSON对象中然后使用ID(或数据属性)与JSON对象中的索引相关联会更好吗?它们将改变与元素对应的JSON对象中的索引,而不是更改元素的Html控件。 什么是更好的?如果我只关注评级变量,那么正确的方法是否会有所不同?
编辑:我问这个问题,因为我已经阅读并听说在DOM中存储和更改信息效率低下。答案 0 :(得分:2)
没有&#34;对&#34;回答这里。
在HTML对象上使用元数据的优点是:
使用预构建的javascript对象的优点是:
我不知道你究竟听到了什么&#34;在DOM中存储和更改信息效率低下&#34;。这完全取决于您正在做什么以及您正在改变哪种类型的数据以及性能在多大程度上至关重要。以一种导致重新布局和重新绘制的方式修改DOM绝对是很慢的。但是,从DOM中的HTML对象读取一段元数据不会导致重新布局或重新绘制。
如果你的紧密循环对性能非常敏感,那么你应该使用javascript对象中的数据,而不是DOM对象上的属性。但是,读取DOM属性的性能通常不是一个值得注意的问题,因此可读性和可维护性等问题通常更为重要,并会推动决策。
P.S。您没有恰当地使用JSON这个术语。我认为你所问的是一个&#34; Javascript对象&#34;或&#34; Javascript literal&#34;这是你在javascript代码中静态声明javascript变量的方式。 JSON是一种文本格式,用于以纯字符串格式指定或交换javascript数据。必须解析JSON以将其转换为实际的javascript变量。