<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sentido Web &#187; DocumentFragments</title>
	<atom:link href="http://sentidoweb.com/tag/documentfragments/feed" rel="self" type="application/rss+xml" />
	<link>http://sentidoweb.com</link>
	<description>Desarrollo web, HTML, CSS, Javascript, PHP, MySQL</description>
	<lastBuildDate>Tue, 10 Apr 2012 01:02:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>DocumentFragments en Javascript</title>
		<link>http://sentidoweb.com/2008/07/22/documentfragments-en-javascript.php</link>
		<comments>http://sentidoweb.com/2008/07/22/documentfragments-en-javascript.php#comments</comments>
		<pubDate>Tue, 22 Jul 2008 21:45:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[DocumentFragments]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2008/07/22/documentfragments-en-javascript.php</guid>
		<description><![CDATA[Nunca se para de aprender, y de John Resig menos. DocumentFragments son contenedores ligeros que pueden almacenar objetos DOM de Javascript. Yo ni había oído hablar de ellos y la verdad es que su uso es sencillo y mucho más potente que trabajar con el DOM normalmente (de 2 a 3 veces más rápido). El [...]]]></description>
			<content:encoded><![CDATA[<p>Nunca se para de aprender, y de John Resig menos. <strong>DocumentFragments</strong> son contenedores ligeros que pueden almacenar objetos DOM de Javascript. Yo ni había oído hablar de ellos y la verdad es que su uso es sencillo y mucho más potente que trabajar con el DOM normalmente (de 2 a 3 veces más rápido).</p>
<p>El ejemplo que muestra John lo dice todo y muy fácil. Primero creamos unos elementos para luego insertarlos (de forma normal y con <a href="http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-B63ED1A3">DocumentFragments</a>):</p>
<pre><code><pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> elems = <span style="color: #66cc66;">&#91;</span>
document.<span style="color: #006600;">createElement</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"hr"</span><span style="color: #66cc66;">&#41;</span>,
text<span style="color: #66cc66;">&#40;</span> document.<span style="color: #006600;">createElement</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"b"</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #3366CC;">"Links:"</span> <span style="color: #66cc66;">&#41;</span>,
document.<span style="color: #006600;">createTextNode</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">" "</span><span style="color: #66cc66;">&#41;</span>,
text<span style="color: #66cc66;">&#40;</span> document.<span style="color: #006600;">createElement</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"a"</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #3366CC;">"Link A"</span> <span style="color: #66cc66;">&#41;</span>,
document.<span style="color: #006600;">createTextNode</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">" | "</span><span style="color: #66cc66;">&#41;</span>,
text<span style="color: #66cc66;">&#40;</span> document.<span style="color: #006600;">createElement</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"a"</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #3366CC;">"Link B"</span> <span style="color: #66cc66;">&#41;</span>,
document.<span style="color: #006600;">createTextNode</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">" | "</span><span style="color: #66cc66;">&#41;</span>,
text<span style="color: #66cc66;">&#40;</span> document.<span style="color: #006600;">createElement</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"a"</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #3366CC;">"Link C"</span> <span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#93;</span>;
<span style="color: #003366; font-weight: bold;">function</span> text<span style="color: #66cc66;">&#40;</span>node, txt<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
node.<span style="color: #006600;">appendChild</span><span style="color: #66cc66;">&#40;</span> document.<span style="color: #006600;">createTextNode</span><span style="color: #66cc66;">&#40;</span>txt<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #000066; font-weight: bold;">return</span> node;
<span style="color: #66cc66;">&#125;</span></pre></code></pre>
<p>Y luego la inserción normal:</p>
<pre><code><pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> div = document.<span style="color: #006600;">getElementsByTagName</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"div"</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #003366; font-weight: bold;">var</span> i = <span style="color: #CC0000;">0</span>; i &lt; div.<span style="color: #006600;">length</span>; i++ <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #003366; font-weight: bold;">var</span> e = <span style="color: #CC0000;">0</span>; e &lt; elems.<span style="color: #006600;">length</span>; e++ <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
div<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">appendChild</span><span style="color: #66cc66;">&#40;</span> elems<span style="color: #66cc66;">&#91;</span>e<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">cloneNode</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></code></php>
<p>Y por último el nuevo método:</p>
<pre><code><pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> div = document.<span style="color: #006600;">getElementsByTagName</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"div"</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #003366; font-weight: bold;">var</span> fragment = document.<span style="color: #006600;">createDocumentFragment</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #003366; font-weight: bold;">var</span> e = <span style="color: #CC0000;">0</span>; e &lt; elems.<span style="color: #006600;">length</span>; e++ <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
fragment.<span style="color: #006600;">appendChild</span><span style="color: #66cc66;">&#40;</span> elems<span style="color: #66cc66;">&#91;</span>e<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #003366; font-weight: bold;">var</span> i = <span style="color: #CC0000;">0</span>; i &lt; div.<span style="color: #006600;">length</span>; i++ <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
div<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">appendChild</span><span style="color: #66cc66;">&#40;</span> fragment.<span style="color: #006600;">cloneNode</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></code></php>
<p>Resumiendo, mucho más eficiente y sencillo de usar. Seguro que para la próxima versión de jQuery nos ofrece esta implementación.</p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2008/07/22/documentfragments-en-javascript.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

