アップデート
どうやら、jQuery テンプレートはコンパイル可能で、ここに示されているif ステートメントを含むテンプレートのパフォーマンスに役立ちます。
しかし、ここに示すように、私のテンプレートには論理ブロックが含まれていないため、コンパイル済みの jQuery テンプレートは私の場合にはあまり役に立ちません。
別のテンプレート エンジンの使用を提案している場合は、チームの全員が jQuery だけを知っているので、理想的には jQuery テンプレートだけを使用したいと思います。いくつかのテンプレート エンジンを比較するこのテスト ケースもあります。
やあ、
ちょうど今日、jQuery テンプレートを使用するとパフォーマンスの問題があるとのことでした。
比較するために、jQuery テンプレートと古き良き文字列追加メソッドを使用してテーブルに行を追加しました。結果はこちらでご覧いただけます。jQuery テンプレートを使用すると、文字列を追加する方法と比較して約 65% 遅くなります。
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>
ありがとう、
カイ