<?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>Blog -  El TallerWeb &#187; JavaScript</title>
	<atom:link href="http://blog.eltallerweb.com/category/javascript-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.eltallerweb.com</link>
	<description>Blog para apasionados al diseño y desarrollo Web</description>
	<lastBuildDate>Tue, 16 Jun 2015 20:26:30 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.2</generator>
	<item>
		<title>Incluir ficheros JavaScript bajo demanda</title>
		<link>http://blog.eltallerweb.com/incluir-ficheros-javascript-bajo-demanda/</link>
		<comments>http://blog.eltallerweb.com/incluir-ficheros-javascript-bajo-demanda/#comments</comments>
		<pubDate>Tue, 15 Jan 2013 16:42:39 +0000</pubDate>
		<dc:creator><![CDATA[jmosqueda]]></dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JQUERY]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[código]]></category>
		<category><![CDATA[ejemplo]]></category>
		<category><![CDATA[ficheros]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://blog.eltallerweb.com/?p=495</guid>
		<description><![CDATA[Por Juan Carlos Mosqueda, @juan_mosqueda Dentro de la programación Web es muy frecuente desarrollar una estructura modular compuesta por varios ficheros que vamos llamando según los necesitemos. Por ejemplo, todos conocemos  los includes o requires ]]></description>
				<content:encoded><![CDATA[<p>Por Juan Carlos Mosqueda, @juan_mosqueda</p>
<p>Dentro de la programación Web es muy frecuente desarrollar una estructura modular compuesta por varios ficheros que vamos llamando según los necesitemos. Por ejemplo, todos conocemos  los <em>includes</em> o <em>requires</em> en PHP que nos permiten <em>incluir</em> ficheros dentro de otros. Esta técnica es especialmente útil en el marcado HTML para separar elementos comunes de las páginas como un <em>header</em> o un <em>footer</em> en archivos independientes que sólo hay que llamar cuando se necesiten.</p>
<p>Sin embargo, pese a que la mayoría de lenguajes incorporan de uno u otro modo esta funcionalidad (la de llamar e incluir otros archivos dentro de él mismo), JavaScript no la presenta de forma nativa. Es por ello que existen numerosas bibliotecas que expanden al lenguaje permitiendo estas inclusiones con un alto grado de control.</p>
<p><em>NOTA: Actualmente, gracias a la granularidad de los plugins en jQuery y a los patrones de expansión de módulos ya no resulta tan frecuente encontrar el getScript() como lo era en el pasado.</em></p>
<p>Si no queremos que nuestro código presente dependencias de terceros o simplemente queremos el control de nuestro propio codigo, podemos implementar nuestra propia función para añadir ficheros JavaScript a una página bajo demanda emulando la funcionalidad de estas bibliotecas o los comandos de otros lenguajes.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">function</span> CargaScript<span style="color: #009900;">&#40;</span>url<span style="color: #339933;">,</span> callback<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">var</span> script <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'script'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>script.<span style="color: #660066;">readyState</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #006600; font-style: italic;">// Internet Explorer</span>
    script.<span style="color: #660066;">onreadystatechange</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>script.<span style="color: #660066;">readyState</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'loaded'</span> <span style="color: #339933;">||</span> script.<span style="color: #660066;">readyState</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'complete'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        script.<span style="color: #660066;">onreadystatechange</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        callback<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span> <span style="color: #006600; font-style: italic;">// Otros Navegadores</span>
    script.<span style="color: #660066;">onload</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      callback<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  script.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> url<span style="color: #339933;">;</span>
  document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'head'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>script<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Sólo tenemos que hacer la distición entre el &#8220;famoso&#8221; Internet Explorer y los demás navegadores.</p>
<p>El funcionamiento de este código es añadir de forma dinámica una nueva etiqueta <em>script</em> a la cabecera de nuestra página (head) con la dirección URL del recurso a cargar. De forma adicional, incluimos un <em>callback</em> al estilo jQuery que se ejecutará tan pronto como nuestro nuevo <em>script</em> esté disponible.</p>
<p><em>NOTA: Por otro lado, si a ti te gusta hacer la carga asincrona de tus script, es decir, poner al último el llamado de tus scripts, lo único que tienes que hacer es cambiar el Tag ‘head’ por ‘body’.</em></p>
<h2>EJEMPLO DE USO</h2>
<p>Para un ejemplo sencillo, cargaremos la biblioteca del jQuery ubicada en un CDN.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">var</span> myLibrary <span style="color: #339933;">=</span> <span style="color: #3366CC;">'https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js'</span><span style="color: #339933;">;</span>
&nbsp;
loadScript<span style="color: #009900;">&#40;</span>myLibrary<span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  alert<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Ha cargado JQuery!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Si ejecutamos el código anterior, en cuanto el <em>script</em> se cargue y esté disponible, recibiremos el <em>alert</em> definido en el <em>callback</em> avisando que se ha cargado correctamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eltallerweb.com/incluir-ficheros-javascript-bajo-demanda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
