gpt4 book ai didi

jquery - 提高 jQuery 模板性能

转载 作者:行者123 更新时间:2023-12-03 22:15:15 29 4
gpt4 key购买 nike

更新

显然,jQuery 模板可以被编译,并且它有助于显示带有 if 语句 的模板的性能 here .

但是如图here ,预编译的 jQuery 模板对我的情况没有多大作用,因为我的模板不包含逻辑 block 。

对于那些建议使用其他模板引擎的人,理想情况下我只想使用 jQuery 模板,因为团队中的每个人都知道 jQuery。还有this比较几个模板引擎的测试用例。

<小时/>

嗨,

就在今天,我被告知使用 jQuery 模板存在性能问题。

为了进行比较,我使用了 jQuery 模板和良好的旧字符串追加方法来向表中添加行。结果可见here 。与字符串追加方法相比,使用 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>

谢谢

最佳答案

陈志,

这个问题有点晚了。我发现先编译模板,然后通过字符串 Id(在下面的情况下,命名变量 templateAlias )引用它们实际上比通过对象路由快 10 倍。以下是实现这一目标的方法(基于您的代码示例):

var templateAlias = 'tmplRow';
// compile the template
$.template(templateAlias, $("#tmplRow"));

<script type="text/javascript">
$.tmpl(templateAlias, data).appendTo('#table');
</script>

这应该会显着加快处理速度,因为模板将被编译,并且不会在每次运行 .appendTo() 函数时使用整个对象模型。使用 $('#tmplRow').tmpl(data).appendTo('#table'); 意味着 $('#tmplRow') 查询 DOM,而, $.tmpl(templateAlias, data).appendTo('#table'); 仅根据对模板的引用添加到 DOM。关于这个主题有很多读物。

这里是一个可能有帮助的链接:

http://boedesign.com/misc/presentation-jquery-tmpl/#13

希望这有帮助,祝你好运......

关于jquery - 提高 jQuery 模板性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4608371/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com