6
回答
js 拼字符串好,还是用jquery对象好?
终于搞明白,存储TCO原来是这样算的>>>   

比如我的页面要生成N多<li>

<div>
<ul>
<li>.....</li>
<li>.....</li>
<li>.....</li>
<li>.....</li>
<li>.....</li>
<li>.....</li>
<li>.....</li>
</ul>
</div>

原来的方法是这样的:

var html="";

html+=...

现在改用

var div=$("<div><ul></ul></div>");

$.each(xx,function(){

div.find("ul").append("<li></li>");

});

 

那样更好?求更好的做法、

举报
fujet
发帖于6年前 6回/3K+阅
共有6个答案 最后回答: 6年前
效率上肯定是html+=高。但是这样加入的元素无法加入DOM,只有通过appendChild方法加入的元素才能在DOM中访问。

首先要明确的问题是:你的问题是什么。

你的问题不是“哪种方式拼接字符串更快”,你的问题是“操作DOM元素操作1次快,还是操作多次快”。这样,问题答案就很明显了。如你改用之后的方法,你就要操作DOM元素N次,一次加入一个<li>标签,而你之前的,是把所有的<li>标签连接起来,然后整体加入到<ul>中。这下,那个效率更好,很明显了哈。操作DOM可是很费资源和时间的哦。

这样的情况应该使用Js Template,会让你写的代码清晰简单很多。

推荐两款JS前端模板引擎
1.Jquery作者John Resig 创作的Micro-Templating。解析20W数据仅需不到一秒(776MS).

http://ejohn.org/blog/javascript-micro-templating/

2.Yaya Template - 据说是目前最快的Javascrip前端模板引擎 - 20W条数据仅需700MS(我用Chrome测试)

 

  这两款引擎对缓存机制确保只对原始模板仅进行一次解析,所以速度相当的快。亦远高于用var+=这样的传统方式拼接。

引用来自“sxgkwei”的答案

首先要明确的问题是:你的问题是什么。

你的问题不是“哪种方式拼接字符串更快”,你的问题是“操作DOM元素操作1次快,还是操作多次快”。这样,问题答案就很明显了。如你改用之后的方法,你就要操作DOM元素N次,一次加入一个<li>标签,而你之前的,是把所有的<li>标签连接起来,然后整体加入到<ul>中。这下,那个效率更好,很明显了哈。操作DOM可是很费资源和时间的哦。

十分感谢解答

引用来自“blur”的答案

效率上肯定是html+=高。但是这样加入的元素无法加入DOM,只有通过appendChild方法加入的元素才能在DOM中访问。
十分感谢解答

引用来自“bwin”的答案

这样的情况应该使用Js Template,会让你写的代码清晰简单很多。

推荐两款JS前端模板引擎
1.Jquery作者John Resig 创作的Micro-Templating。解析20W数据仅需不到一秒(776MS).

http://ejohn.org/blog/javascript-micro-templating/

2.Yaya Template - 据说是目前最快的Javascrip前端模板引擎 - 20W条数据仅需700MS(我用Chrome测试)

 

  这两款引擎对缓存机制确保只对原始模板仅进行一次解析,所以速度相当的快。亦远高于用var+=这样的传统方式拼接。

十分感谢建议
顶部