Обновление
По-видимому, шаблоны jQuery могут быть скомпилированы и помогают производительности для шаблонов с показателями if здесь.
Но, как показано здесь, предварительно скомпилированные шаблоны jQuery не делают многого для моего случая, так как мой шаблон не содержит логического блока.
Для тех, кто предлагает использовать другой шаблонный движок, в идеале я хотел бы использовать только шаблоны jQuery, поскольку все в команде знают только jQuery. Существует также этот тестовый пример, который сравнивает несколько шаблонов.
Привет,
Только сегодня мне сказали, что есть проблемы с производительностью с использованием шаблонов jQuery.
Для сравнения, я использовал шаблоны jQuery и старый старый метод добавления строк для добавления строк в таблицу. Результаты можно увидеть здесь. Использование шаблонов jQuery примерно на 65% медленнее сравнивается с методом добавления строк, Ouch!
Мне интересно, что можно сделать для повышения производительности шаблона jQuery script.
Полный script можно просмотреть в предоставленной ссылке. Но основная идея такова:
Шаблон:
<script type="x-jquery-tmpl" id="tmplRow">
<tr>
<td><input type="checkbox" value="${id}" /></td>
<td>${firstName} ${lastName}</td>
<td class="edit">
<a>Edit</a>
<input style="display:none;" type="hidden" value="Blah" />
<input class="cancel" type="button" value="cancel" />
</td>
<td class="select">
<a>Select</a>
<select style="display:none;">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>
<input class="cancel" type="button" value="cancel" />
</td>
<td>More string</td>
<td>More string</td>
<td>More string</td>
<td>More string</td>
<td>More string</td>
<td>More string</td>
</tr>
</script>
Данные:
<script type="text/javascript">
var data = [];
for (var i = 0; i < 100; i++) {
var row = {
id: i,
firstName: 'john',
lastName: 'doe'
};
data.push(row);
}
</script>
HTML:
<table id="table"></table>
Исполняет:
<script type="text/javascript">
$('#tmplRow').tmpl(data).appendTo('#table');
</script>
Спасибо,
Chi