Jquery tmpl使用连接方法提高速度
Jquery tmpl using join approach for speed
我看到有人提到使用JQuery tmpl以更快的方式创建字符串而不是DOM元素:http://riley.dutton.us/2010/10/12/jquery-templates-vs-jqote-2-a-followup.html
我似乎就是不能让它工作。我使用JQuery 1.6.4和最新的tmpl文件从GitHub。我的代码如下-谁能指出明显的错误?多谢。
JsonData是来自web服务的响应,并且是正确形成的JSON -我可以使用广为人知的方法将其绑定到tmpl,也可以使用JQote2。
jQueryTemplate看起来像:
<script id="jQueryTemplate" type="text/x-jquery-tmpl">
<li><span>${Name}</span><span>${ProductName}</span></li>
</script>
我的JS调用模板:
var myTemplate = $('#jQueryTemplate').template();
var html = myTemplate($, { data: JsonData }).join('');
$("#container").html(html);
我似乎得到未定义的结果$('#jQueryTemplate').template();这个错误:
Uncaught TypeError: Object
<li><span>${Name}</span><span>${ProductName}</span></li>
has no method 'join'
感谢您的帮助
这样定义你的模板;
$.template( "jQueryTemplate", "<li><span>${Name}</span><span>${ProductName}</span></li>" );
像这样呈现你的模板;
$.tmpl( "jQueryTemplate", JsonData ).appendTo( "#container" );
或
这样定义你的模板;
<script id="jQueryTemplate" type="text/x-jquery-tmpl">
<li><span>${Name}</span><span>${ProductName}</span></li>
</script>
像这样呈现你的模板;
$( "#jQueryTemplate" ).tmpl(JsonData).appendTo("#container" );
经过一番挖掘,我最终找到了Boris Moore解释的这种方法的一个例子。谢谢鲍里斯的出色工作。https://github.com/jquery/jquery-tmpl/issues/50
我创建了一个jsperf来比较这两种方法——这是我的第一个jsperf,所以希望它被正确设置以获得有意义的结果。它显示了巨大的差异。我想这取决于使用情况,但我的是相当基本的标记生成,所以字符串输出与。html()结合就可以了。http://jsperf.com/jquery-tmpl-as-string
如果你发现自己需要提高tmpl的性能,并且没有机会切换到另一个模板引擎,希望这对你有所帮助。
相关文章:
- 有没有一种方法可以使用已经过时的jquery的Filtrify和需要更高版本jquery的bootstrap
- 供应商前缀 CSS 解决方法(引导程序)的速度和大小
- 有什么方法可以获得或计算ScrollView的速度吗
- 向React中的高阶组件添加方法
- 有没有什么方法可以将速度模板与backbone.js集成
- 什么's将命名函数传递给Javascript的正确方法's的高阶函数
- 获取数组中满足 Javascript 条件的第一个元素的高阶方法
- 优雅地降级有机选项卡以在IE9高安全性(又名无js)中工作的简单方法
- 逐渐减慢2D对象方法的速度
- 在es6类中从高阶函数中定义一个方法
- 任何检测用户何时高亮显示或复制全部/部分URL的方法
- 什么'这是在angular JS中创建一个表的好方法,当单元格发生变化时,该表会高亮显示
- 用数据库中的数据填充高图表的最佳(简单)方法
- 有哪些方法可以加快jquery/javascript中img交换的速度
- 当用户在网页上选择一大块文本时,是否有一种方法可以使该文本保持高亮显示,即使用户在该页面的其他地方单击也是如此
- 什么是编写具有高I/O使用率的chrome扩展的正确方法
- 以非常高的速度显示流数据
- Jquery tmpl使用连接方法提高速度
- 是否有一种方法可以强制非活动选项卡以正常速度运行JavaScript
- 在jQuery中添加属性时,使用attr()方法,将属性作为键值对象传递,还是直接传递,哪种方法执行速度最快?