顯然,jQuery的模板可以被編譯,它有助於與if語句顯示here爲模板的性能。
但如here所示,預編譯的jQuery模板對我的情況並沒有太大的作用,因爲我的模板不包含邏輯塊。
對於那些建議使用另一個模板引擎的人,理想情況下我想只使用jQuery模板,因爲團隊中的每個人都知道jQuery。還有一些this測試用例比較了幾個模板引擎。
嗨,
就在今天,我被告知,有與使用jQuery模板的性能問題。
爲了進行比較,我使用了jQuery模板和良好的舊字符串append方法將行添加到表中。結果可以看到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>
個
謝謝,
馳
我不介意檢查車把。但他們的下載不起作用。如果我僅從源代碼引用「handlebars.js」,它將會以未定義的方法「required」失敗。你有沒有js文件的副本? – 2011-01-06 16:00:31
jquery模板'編譯'模板以及... – user406905 2011-01-06 22:27:55
顯然,'編譯'模板只有在有邏輯控制塊時纔有幫助。詳細信息請查看更新後的問題。 – 2011-01-06 22:41:40