<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Fastest way to build an HTML string</title>
	<atom:link href="http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/feed/" rel="self" type="application/rss+xml" />
	<link>http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 08 Mar 2010 01:21:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Julien</title>
		<link>http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/comment-page-1/#comment-13734</link>
		<dc:creator>Julien</dc:creator>
		<pubDate>Sat, 06 Jun 2009 06:33:54 +0000</pubDate>
		<guid isPermaLink="false">http://james.padolsey.com/?p=862#comment-13734</guid>
		<description>I&#039;d bet the developers of Chrome&#039;s JS engine actually optimized the &quot;ugly&quot; method knowing that as you stated, it probably is the most common.</description>
		<content:encoded><![CDATA[<p>I&#8217;d bet the developers of Chrome&#8217;s JS engine actually optimized the &#8220;ugly&#8221; method knowing that as you stated, it probably is the most common.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GR</title>
		<link>http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/comment-page-1/#comment-13608</link>
		<dc:creator>GR</dc:creator>
		<pubDate>Wed, 03 Jun 2009 20:45:07 +0000</pubDate>
		<guid isPermaLink="false">http://james.padolsey.com/?p=862#comment-13608</guid>
		<description>Sweet thanks!</description>
		<content:encoded><![CDATA[<p>Sweet thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/comment-page-1/#comment-13606</link>
		<dc:creator>James</dc:creator>
		<pubDate>Wed, 03 Jun 2009 20:21:50 +0000</pubDate>
		<guid isPermaLink="false">http://james.padolsey.com/?p=862#comment-13606</guid>
		<description>Here&#039;s how I tested: http://pastie.org/499582

@redsquare, IE6 uses the same JS engine as IE7 - the results would be very similar.</description>
		<content:encoded><![CDATA[<p>Here&#8217;s how I tested: <a href="http://pastie.org/499582">http://pastie.org/499582</a></p>
<p>@redsquare, IE6 uses the same JS engine as IE7 &#8211; the results would be very similar.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GR</title>
		<link>http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/comment-page-1/#comment-13605</link>
		<dc:creator>GR</dc:creator>
		<pubDate>Wed, 03 Jun 2009 20:15:54 +0000</pubDate>
		<guid isPermaLink="false">http://james.padolsey.com/?p=862#comment-13605</guid>
		<description>How are you guys testing?</description>
		<content:encoded><![CDATA[<p>How are you guys testing?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sean</title>
		<link>http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/comment-page-1/#comment-13586</link>
		<dc:creator>Sean</dc:creator>
		<pubDate>Wed, 03 Jun 2009 14:41:27 +0000</pubDate>
		<guid isPermaLink="false">http://james.padolsey.com/?p=862#comment-13586</guid>
		<description>It seems my method is not faster:
IE 8
Concat: 161
Arraypush: 320
HolyGrail: 72
My method: 263

FireFox 3
Concat: 135
Arraypush: 127
HolyGrail: 39
My method: 140</description>
		<content:encoded><![CDATA[<p>It seems my method is not faster:<br />
IE 8<br />
Concat: 161<br />
Arraypush: 320<br />
HolyGrail: 72<br />
My method: 263</p>
<p>FireFox 3<br />
Concat: 135<br />
Arraypush: 127<br />
HolyGrail: 39<br />
My method: 140</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sean</title>
		<link>http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/comment-page-1/#comment-13572</link>
		<dc:creator>Sean</dc:creator>
		<pubDate>Wed, 03 Jun 2009 11:11:41 +0000</pubDate>
		<guid isPermaLink="false">http://james.padolsey.com/?p=862#comment-13572</guid>
		<description>&lt;pre lang=&quot;javascript&quot; escaped=&quot;true&quot;&gt;
var arr = [&#039;item 1&#039;, &#039;item 2&#039;, &#039;item 3&#039;...];
var l= arr.length;
list = new Array(2+3* l);
list[0]=&#039;[ul]&#039;;
for (var i = 0; i &lt; l; i++) 
{
	var j=i*3;
	list[j+1] = &#039;[li]&#039;;
	list[j+2]=arr[i];
	list[j+3] =&#039;[/li]&#039;;
}

list[list.length]=&#039;[/ul]&#039;;
 
list = list.join(&#039;&#039;) ;
&lt;/pre&gt;

Should be faster than any method above although maybe not as elegant</description>
		<content:encoded><![CDATA[
<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span class="kw2">var</span> arr <span class="sy0">=</span> <span class="br0">&#91;</span><span class="st0">'item 1'</span><span class="sy0">,</span> <span class="st0">'item 2'</span><span class="sy0">,</span> <span class="st0">'item 3'</span>...<span class="br0">&#93;</span><span class="sy0">;</span>
<span class="kw2">var</span> l<span class="sy0">=</span> arr.<span class="me1">length</span><span class="sy0">;</span>
list <span class="sy0">=</span> <span class="kw2">new</span> Array<span class="br0">&#40;</span><span class="nu0">2</span><span class="sy0">+</span><span class="nu0">3</span><span class="sy0">*</span> l<span class="br0">&#41;</span><span class="sy0">;</span>
list<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">=</span><span class="st0">'[ul]'</span><span class="sy0">;</span>
<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> l<span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span> 
<span class="br0">&#123;</span>
	<span class="kw2">var</span> j<span class="sy0">=</span>i<span class="sy0">*</span><span class="nu0">3</span><span class="sy0">;</span>
	list<span class="br0">&#91;</span>j<span class="sy0">+</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">'[li]'</span><span class="sy0">;</span>
	list<span class="br0">&#91;</span>j<span class="sy0">+</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="sy0">=</span>arr<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="sy0">;</span>
	list<span class="br0">&#91;</span>j<span class="sy0">+</span><span class="nu0">3</span><span class="br0">&#93;</span> <span class="sy0">=</span><span class="st0">'[/li]'</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
list<span class="br0">&#91;</span>list.<span class="me1">length</span><span class="br0">&#93;</span><span class="sy0">=</span><span class="st0">'[/ul]'</span><span class="sy0">;</span>
&nbsp;
list <span class="sy0">=</span> list.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">''</span><span class="br0">&#41;</span> <span class="sy0">;</span></pre></div></div>

<p>Should be faster than any method above although maybe not as elegant</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: redsquare</title>
		<link>http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/comment-page-1/#comment-13399</link>
		<dc:creator>redsquare</dc:creator>
		<pubDate>Mon, 01 Jun 2009 19:16:09 +0000</pubDate>
		<guid isPermaLink="false">http://james.padolsey.com/?p=862#comment-13399</guid>
		<description>Cheers James, what happened to our best friend ie6!</description>
		<content:encoded><![CDATA[<p>Cheers James, what happened to our best friend ie6!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GR</title>
		<link>http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/comment-page-1/#comment-13385</link>
		<dc:creator>GR</dc:creator>
		<pubDate>Mon, 01 Jun 2009 15:33:06 +0000</pubDate>
		<guid isPermaLink="false">http://james.padolsey.com/?p=862#comment-13385</guid>
		<description>How do you benchmark?</description>
		<content:encoded><![CDATA[<p>How do you benchmark?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vasili</title>
		<link>http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/comment-page-1/#comment-13230</link>
		<dc:creator>Vasili</dc:creator>
		<pubDate>Sat, 30 May 2009 15:01:16 +0000</pubDate>
		<guid isPermaLink="false">http://james.padolsey.com/?p=862#comment-13230</guid>
		<description>@Matthieu: You could just use a ternary operator.

&lt;pre lang=&quot;javascript&quot;&gt;
var arr = [&#039;item 1&#039;, &#039;item 2&#039;, &#039;item 3&#039;, ...];
 
var list = (arr.length) ? &#039;&#039; + arr.join(&#039;&#039;) + &#039;&#039; : &#039;&#039;;
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>@Matthieu: You could just use a ternary operator.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span class="kw2">var</span> arr <span class="sy0">=</span> <span class="br0">&#91;</span><span class="st0">'item 1'</span><span class="sy0">,</span> <span class="st0">'item 2'</span><span class="sy0">,</span> <span class="st0">'item 3'</span><span class="sy0">,</span> ...<span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
<span class="kw2">var</span> list <span class="sy0">=</span> <span class="br0">&#40;</span>arr.<span class="me1">length</span><span class="br0">&#41;</span> <span class="sy0">?</span> <span class="st0">''</span> <span class="sy0">+</span> arr.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">''</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">''</span> <span class="sy0">:</span> <span class="st0">''</span><span class="sy0">;</span></pre></div></div>

]]></content:encoded>
	</item>
	<item>
		<title>By: Matthieu</title>
		<link>http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/comment-page-1/#comment-13218</link>
		<dc:creator>Matthieu</dc:creator>
		<pubDate>Sat, 30 May 2009 12:12:27 +0000</pubDate>
		<guid isPermaLink="false">http://james.padolsey.com/?p=862#comment-13218</guid>
		<description>what about doing:

&lt;pre lang=&quot;javascript&quot;&gt;
var arr = [&#039;item 1&#039;, &#039;item 2&#039;, &#039;item 3&#039;, ...],
    list = &quot;&lt;ul&gt;&quot;;
 
for (var i = 0, l = arr.length; i &lt; l; i++) {
    list = list + &#039;&lt;li&gt;&#039; + arr[i] + &#039;&lt;/li&gt;&#039;;
}
 
list = list + &#039;&lt;/ul&gt;&#039;;
&lt;/pre&gt;

That way, if the array is empty, you dont get an empty [li] in the ul !

Could you add this method to your bench?</description>
		<content:encoded><![CDATA[<p>what about doing:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span class="kw2">var</span> arr <span class="sy0">=</span> <span class="br0">&#91;</span><span class="st0">'item 1'</span><span class="sy0">,</span> <span class="st0">'item 2'</span><span class="sy0">,</span> <span class="st0">'item 3'</span><span class="sy0">,</span> ...<span class="br0">&#93;</span><span class="sy0">,</span>
    list <span class="sy0">=</span> <span class="st0">&quot;&lt;ul&gt;&quot;</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">,</span> l <span class="sy0">=</span> arr.<span class="me1">length</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> l<span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
    list <span class="sy0">=</span> list <span class="sy0">+</span> <span class="st0">'&lt;li&gt;'</span> <span class="sy0">+</span> arr<span class="br0">&#91;</span>i<span class="br0">&#93;</span> <span class="sy0">+</span> <span class="st0">'&lt;/li&gt;'</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
list <span class="sy0">=</span> list <span class="sy0">+</span> <span class="st0">'&lt;/ul&gt;'</span><span class="sy0">;</span></pre></div></div>

<p>That way, if the array is empty, you dont get an empty [li] in the ul !</p>
<p>Could you add this method to your bench?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
