<?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>El blog de Artefacto &#187; javascript</title>
	<atom:link href="http://blog.artefactomania.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.artefactomania.com</link>
	<description>ARTEFACTO Diseño y Publicidad: identidad corporativa, imagen de marca, diseños de exposición, carteles, maquetación, catálogos, informes, diseño de páginas web, gestión de comunidades...</description>
	<lastBuildDate>Wed, 25 Jan 2012 09:30:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cargar JQuery desde la red de Google</title>
		<link>http://blog.artefactomania.com/2011/01/cargar-jquery-desde-la-red-de-google/</link>
		<comments>http://blog.artefactomania.com/2011/01/cargar-jquery-desde-la-red-de-google/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 08:08:30 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.artefactomania.com/?p=693</guid>
		<description><![CDATA[Cada vez más, los programadores web hacen que los sitios webs carguen algunas bibliotecas JavaScript desde la CDN (Content Delivery Network, red de entrega de contenidos) de Google, en lugar de hacerlo desde el propio servidor web donde está instalado el sitio o la aplicación.
Esto tiene algunas ventajas importantes, como que ahorra ancho de banda [...]]]></description>
			<content:encoded><![CDATA[<p>Cada vez más, los programadores web hacen que los sitios webs carguen algunas bibliotecas JavaScript desde la CDN (Content Delivery Network, <a href="http://es.wikipedia.org/wiki/Red_de_entrega_de_contenidos" target="_blank">red de entrega de contenidos</a>) de Google, en lugar de hacerlo desde el propio servidor web donde está instalado el sitio o la aplicación.</p>
<p>Esto tiene algunas ventajas importantes, como que ahorra ancho de banda del servidor de la compañía y además hace que el propio sitio web cargue más rápido (ya que los navegadores hacen las peticiones a servidores distintos en paralelo). También optimiza el propio tráfico de Internet, porque si todo el mundo usa el mismo archivo del mismo servidor, la primera vez que el navegador lo solicita se guarda en caché, y en sucesivas peticiones no es necesario descargarlo.</p>
<p>A la hora de cargar bibliotecas podemos cargar la <a href="http://code.google.com/intl/es-ES/apis/libraries/" target="_blank">API de JavaScript de Google</a> y desde ahí cargar mediante código JQuery (o la biblioteca que nos interese). Otra opción es cargar directamente el archivo desde el repositorio de Google:</p>
<pre class="brush: jscript; title: ;">
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt;
</pre>
<p>Este enfoque es adecuado, pero tiene algunos problemas: ¿qué pasa si un día Google decide dejar de alojar el código? Esto no parece muy probable, pero ¿y si se cae un servidor de Google y nuestra página deja de funcionar? Vale que tampoco parece que vaya a ocurrir mañana. Pero hay una última posibilidad en la que no pensé en su día y que es bastante más posible que las anteriores: ¿y si un día le enseño el proyecto a un cliente en mi portátil (ejecutándolo en local) y no tengo conexión a Internet?</p>
<p>Y hay una opción que nos permite evitar este posible contratiempo. En el fondo, es tan sencillo como alojar la biblioteca en nuestro servidor y cargarla sólo si no se pudo cargar la de Google. Por ejemplo, así:</p>
<pre class="brush: jscript; title: ;">
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt; &lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[
!window.jQuery &amp;&amp; document.write('&lt;script src=&quot;js/jquery-1.4.2.min.js&quot; mce_src=&quot;js/jquery-1.4.2.min.js&quot;&gt;&lt;\/script&gt;')
// ]]&gt;&lt;/script&gt;
</pre>
<p>La primera línea se encarga de descargar el archivo de JQuery del servidor de Google. Y la segunda simplemente comprueba si se ha cargado correctamente, y si no, escribe en el documento el código necesario para que se cargue desde el servidor local.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.artefactomania.com/2011/01/cargar-jquery-desde-la-red-de-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reducir los archivos Javascript</title>
		<link>http://blog.artefactomania.com/2009/02/reducir-los-archivos-javascript/</link>
		<comments>http://blog.artefactomania.com/2009/02/reducir-los-archivos-javascript/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 23:22:59 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[artefacto server]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://blog.artefactomania.com/?p=128</guid>
		<description><![CDATA[Llevo todo el fin de semana arreglando el código de Artefacto Server, mejorando su legibilidad y tratando de mejorar su eficiencia todo lo que sea posible. El problema de las aplicaciones web es que en cuanto empiezan a crecer se multiplican las consultas a la base de datos, la inclusión de ficheros de PHP, la [...]]]></description>
			<content:encoded><![CDATA[<p>Llevo todo el fin de semana arreglando el código de <a href="http://artefactoserver.com">Artefacto Server</a>, mejorando su legibilidad y tratando de mejorar su eficiencia todo lo que sea posible. El problema de las aplicaciones web es que en cuanto empiezan a crecer se multiplican las consultas a la base de datos, la inclusión de ficheros de PHP, la descarga de archivos de estilos o de Javascript&#8230; y al final pueden llegar a ser realmente pesadas.</p>
<p>De momento me estoy centrando en limitar las comprobaciones en la inclusión de archivos PHP, sustituyendo los require_once() por llamadas a require() convencionales (que resultan algo más rápidas al no tener que comprobar si el archivo ya ha sido incluido), en la corrección general del código, en la optimización de las consultas a la base de datos (verdadero <strong>cuello de botella</strong> de las aplicaciones web) y en la reducción del tamaño de las páginas.</p>
<p>Sobre esto último, algunas secciones del panel de control de Artefacto Server tenían código CSS o Javascript escrito directamente en el archivo PHP. Esto es un problema porque <strong>incrementa el tamaño de la página</strong> que se descarga al navegador, con lo cual el tiempo de carga es mayor. Ya solucionamos esto en gran medida en Artefacto Server 3.1, pero todavía quedaban algunos módulos con ciertas particularidades sin actualizar.</p>
<p>La ventaja de este enfoque es que el navegador guarda en la caché los archivos y eso siempre acelera la carga. No obstante, todavía se puede dar una vuelta de tuerca más, que consiste en <strong>comprimir el código Javascript o CSS</strong>, eliminando saltos de línea, espacios, etc. Adicionalmente, se puede cambiar el nombre de las funciones y variables y reducir el código todavía más. Para no tener que hacer este trabajo a mano hay algunas opciones interesantes, y la más popular parece ser <a href="http://www.crockford.com/javascript/jsmin.html" target="_blank">JSMin</a>, que además es libre. Hay una implementación en PHP, <a href="http://code.google.com/p/jsmin-php/" target="_blank">jsmin-php</a>, con la que he estado trabajando estos días. He hecho la prueba con uno de los ficheros de funciones comunes y ha pasado de 3060 a 2476 bytes, lo cual nos arroja una tasa de compresión del 20%, que no está nada mal. Otro fichero Javascript del panel de control ha pasado de 3247 a 1754, lo cual supone una reducción de casi el 50%.</p>
<p>Hay que decir que todo esto no va a solucionarnos ningún problema por si solo, sino que tenemos que tomarlo como una acción más de un conjunto de medidas encaminadas a mejorar la rapidez general de la aplicación.</p>
<p>Vía | <a href="http://www.anieto2k.com/2008/05/06/reducir-ficheros-javascript-desde-php/" target="_blank">aNieto2k</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.artefactomania.com/2009/02/reducir-los-archivos-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

