AktualizacjaPoprawa wydajności jQuery szablonu
Najwyraźniej jQuery Szablony mogą być kompilowane i pomaga wydajność szablonów z if pokazano here.
Ale jak pokazano here, prekompilowane szablony jQuery nie zrobiły wiele dla mojego przypadku, ponieważ mój szablon nie zawiera bloku logicznego.
Dla tych, którzy sugerują użycie innego mechanizmu szablonowego, idealnie chciałbym użyć tylko szablonów jQuery, ponieważ wszyscy w zespole znają tylko jQuery. Istnieje również przypadek testowy this, który porównuje kilka silników szablonów.
Cześć,
Właśnie dzisiaj powiedziano mi, że istnieją problemy z wydajnością z użyciem szablonów jQuery.
Aby porównać, użyłem szablonów jQuery i starej dobrej metody dodawania ciągów do dodawania wierszy do tabeli. Wyniki można zobaczyć here. Korzystanie z szablonów jQuery jest o około 65% wolniejsze w porównaniu do metody dodawania ciągów, Ouch!
Zastanawiam się, co można zrobić, aby poprawić wydajność skryptu szablonu jQuery.
Pełny skrypt można wyświetlić w dostępnym linku. Ale podstawowa idea jest następująca:
Szablon:
<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>
danych:
<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>
Wykonuje:
<script type="text/javascript">
$('#tmplRow').tmpl(data).appendTo('#table');
</script>
Dzięki,
Chi
mi to nie przeszkadza, aby sprawdzić kierownicę. Ale ich pobieranie nie działa. jeśli odwołam się tylko do "handlebars.js" ze źródła, to zawiedzie z niezdefiniowaną metodą "required". Czy masz już kopię pliku js? –
Szablony jquery "kompilują" szablony również ... – user406905
Wygląda na to, że szablony "kompilujące" pomagają tylko wtedy, gdy istnieją bloki sterujące logiki. Sprawdź zaktualizowane pytanie, aby uzyskać szczegółowe informacje. –