【发布时间】:2014-03-29 07:41:28
【问题描述】:
我在使用 .append 和 mustache 时遇到了可怕的性能问题,正如您所看到的,我正在循环事件并渲染我要附加到 DOM 的模板 - 任何人都可以建议如何提高效率,目前该应用程序在 Chrome 中停止运行..
非常欢迎任何帮助,这对我来说是一个主要问题。
_.each(currentEvents.events, function(list, index) {
var template = "{{#.}}<div data-start-time='{{start_time}}' data-end-time='{{end_time}}' data-event-id='{{event_id}}' data-event-location-id='{{event_location_id}}' data-type-id='{{event_type_id}}' class='venue-event default-event event-type-{{event_type_id}}'>\
<div class='event-inner clearfix'>\
<div class='venue-event-type'>{{event_type}}</div>\
<div class='venue-event-time'>{{start_time}} - {{end_time}}</div>\
<div class='venue-event-title'>{{event_title}}</div>\
<div class='venue-event-sponsor'>{{sponsor}}</div>\
</div>\
</div>{{/.}}"
var eventOutput = Mustache.render(template, list);
$('[data-event-location-id=' + list.event_location_id + ']').append(eventOutput);
});
【问题讨论】:
-
尝试将 eventOutput 存储在一个数组中,然后一次追加所有内容..
-
你必须使用原生的for循环(_.each在性能方面很慢)
-
如果您将
var template移出_.each 循环会怎样。我认为在每个循环中它都会被处理。
标签: javascript jquery performance mustache