UpdateУлучшение производительности JQuery шаблона
Видимо, шаблоны JQuery могут быть скомпилированы и повышает производительность для шаблонов с если заявления показано here.
Но, как показано на рисунке here, предварительно скомпилированные шаблоны jQuery не очень подходят для моего случая, так как мой шаблон не содержит логического блока.
Для тех, кто предлагает использовать другой шаблонный движок, в идеале я хотел бы использовать только шаблоны jQuery, так как каждый в команде знает только jQuery. Существует также this тестовый корпус, который сравнивает несколько шаблонов.
Привет,
Только сегодня мне сказали, что есть проблемы с производительностью с помощью шаблонов JQuery.
Для сравнения я использовал шаблоны jQuery и старый добрый метод добавления строк для добавления строк в таблицу. Результаты можно увидеть here. Использование шаблонов jQuery примерно на 65% медленнее сравнивается с методом добавления строк, Ouch!
Мне интересно, что можно сделать, чтобы улучшить производительность шаблона шаблона jQuery.
Полный скрипт можно просмотреть в указанной ссылке. Но основная идея заключается в следующем:
Шаблон:
<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
Я не против того, чтобы проверить рули. Но их загрузка не работает. если я ссылаюсь только на «handlebars.js» из исходного кода, он будет терпеть неудачу с неопределенным методом «требуется». У вас есть копия файла js, сидящего вокруг? –
шаблоны jquery «компилируют» также шаблоны ... – user406905
Очевидно, что «компиляция» шаблонов помогает только в случае наличия блоков логического управления. Пожалуйста, уточните обновленный вопрос. –