<?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>pon css en tu vida! &#187; JavaScript</title>
	<atom:link href="http://blog.joanfernandez.es/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.joanfernandez.es</link>
	<description>css, html, javascript, php y mucho mas...</description>
	<lastBuildDate>Fri, 23 Jul 2010 12:28:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mostrar/Ocultar contraseña mediante un checkbox con jQuery</title>
		<link>http://blog.joanfernandez.es/2009/12/mostrar-ocultar-contrasena-checkbox-jquery/</link>
		<comments>http://blog.joanfernandez.es/2009/12/mostrar-ocultar-contrasena-checkbox-jquery/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 07:30:43 +0000</pubDate>
		<dc:creator>Joan</dc:creator>
				<category><![CDATA[Cómo se hizo]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Usabilidad]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[contraseñas]]></category>

		<guid isPermaLink="false">http://blog.joanfernandez.es/?p=359</guid>
		<description><![CDATA[
Hace unos meses, a raíz de un de un artículo de Jakob Nielsen, comentaba la posibilidad de hacer más usables los formularios de login mediante un checkbox para mostrar y ocultar la contraseña.
Y aunque la idea no me parecía descabellada, pasó de largo por mi cabeza como tantas y tantas cosas que vemos al día [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-371" title="mostrar-ocultar-password-jquery" src="http://blog.joanfernandez.es/wp-content/uploads/2009/12/mostrar-ocultar-password-jquery.png" alt="mostrar-ocultar-password-jquery" width="515" height="269" /></p>
<p>Hace unos meses, a raíz de un de un artículo de <a title="Jakob Nielsen en Wikipedia" href="http://es.wikipedia.org/wiki/Jakob_Nielsen">Jakob Nielsen</a>, comentaba la posibilidad de hacer más usables los formularios de login mediante un <a title="Jakob Nielsen: No ocultes la contraseñas" href="http://blog.joanfernandez.es/2009/06/jakob-nielsen-no-ocultes-las-contrasenas/">checkbox para mostrar y ocultar la contraseña</a>.</p>
<p>Y aunque la idea no me parecía descabellada, pasó de largo por mi cabeza como tantas y tantas cosas que vemos al día por Internet.</p>
<p>Sin embargo, después de tener la posibilidad utilizar un móvil para conectarme a Internet, me doy cuenta de cuan engorroso puede llegar a ser meter nuestra contraseña utilizando el teclado del móvil, y lo frustrante que es no saber si lo que has introducido es la contraseña correcta.</p>
<p>El resultado de todo esto es un pequeño script en jQuery que nos permite <strong>mostrar y ocultar el valor de un input de tipo password</strong>.</p>
<p><a title="DEMO | Mostrar/Ocultar contraseña con jQuery" href="http://blog.joanfernandez.es/ejemplos/mostrar-ocultar-password/">DEMO</a> | <a title="Descargar la demo | Mostrar/Ocultar contraseña con jQuery" href="http://blog.joanfernandez.es/ejemplos/password.v02.rar">DESCARGAR EJEMPLO</a></p>
<p>Más info, después del salto <img src='http://blog.joanfernandez.es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-359"></span>La forma de hacerlo es muy sencilla. Simplemente creamos un input de tipo &#8220;text&#8221; donde copiaremos lo que se escriba en el password, y viceversa. Mediante el checkbox, mostraremos u ocultaremos ese input con la contraseña &#8220;legible&#8221;.</p>
<p>Mediante el HTML, creamos el típico formulario de login, con sus campos usuario y contraseña:</p>
<pre class="brush: php;">
&lt;form action=&quot;#&quot;&gt;
     &lt;fieldset&gt;
          &lt;p&gt;
               &lt;label for=&quot;user&quot;&gt;Usuario&lt;/label&gt;
               &lt;input type=&quot;text&quot; id=&quot;user&quot; /&gt;
          &lt;/p&gt;
          &lt;p&gt;
               &lt;label for=&quot;password-hide&quot;&gt;Contraseña&lt;/label&gt;
               &lt;input type=&quot;password&quot; id=&quot;password-hide&quot; /&gt;
          &lt;/p&gt;
          &lt;p&gt;
               &lt;input type=&quot;submit&quot; id=&quot;send&quot; value=&quot;Enviar&quot; /&gt;
          &lt;/p&gt;
     &lt;/fieldset&gt;
&lt;/form&gt;
</pre>
<p>Con jQuery hacemos el resto.</p>
<pre class="brush: jscript;">
jQuery(document).ready(function() {
     var passwText = jQuery('#password-hide');

     // Creamos el input que contendrá la contraseña &amp;amp;quot;visible&amp;amp;quot;
     // y el checkbox
     passwText.after('&lt;span class=&quot;showpass&quot;&gt;&lt;input type=&quot;text&quot; id=&quot;password-show&quot; /&gt;&lt;input type=&quot;checkbox&quot; id=&quot;toogle-check&quot;/&gt;&lt;label for=&quot;toogle-check&quot;&gt;Mostrar Contraseña&lt;/label&gt;&lt;/span &gt;');
     var toogCheck = jQuery('#toogle-check');
     var inputText = jQuery('#password-show');

     inputText.hide();

     // Recogemos los caracteres introducidos como contraseña
     // y los compiamos al otro campo
     inputText.keyup(function() { passwText.attr('value', inputText.attr('value')); });
     passwText.keyup(function() { inputText.attr('value', passwText.attr('value')); });

     // Click sobre el checkbox
     $(toogCheck).click(function() {
          if( toogCheck.is(':checked') ) {
               inputText.show(); passwText.hide();
          } else {
               inputText.hide(); passwText.show();
          }
     });
});
</pre>
<p>Creamos el campo que contendrá la contraseña visible (#password-show) y el checkbox que los habilitará. Es necesario crearlos con jQuery, ya que si el usuario no tiene activado javascript en su navegador, no le aparecerán campos inservibles en el formulario de login que le  puedan confundir.</p>
<p>Con el evento keyup de jQuery, recogeremos los caracteres de la contraseña para tener exactamente igual ambos campos (#password-hide y #password-show). Mapeamos el evento keyup de los dos input, ya que el usuario también puede introducir su contraseña en &#8220;modo visible&#8221;.</p>
<p>Por último, con el evento <strong>click</strong> controlamos el checkbox, para mostrar el &#8220;input password&#8221;, o el &#8220;input text&#8221;.</p>
<p><a title="DEMO | Mostrar/Ocultar contraseña con jQuery" href="http://blog.joanfernandez.es/ejemplos/mostrar-ocultar-password/">DEMO</a> | <a title="Descargar la demo | Mostrar/Ocultar contraseña con jQuery" href="http://blog.joanfernandez.es/ejemplos/password.v02.rar">DESCARGAR EJEMPLO</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joanfernandez.es/2009/12/mostrar-ocultar-contrasena-checkbox-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sistema de rating con jQuery.</title>
		<link>http://blog.joanfernandez.es/2009/07/sistema-de-rating-con-jquery/</link>
		<comments>http://blog.joanfernandez.es/2009/07/sistema-de-rating-con-jquery/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 10:10:27 +0000</pubDate>
		<dc:creator>Joan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Cómo se hizo]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[rating]]></category>
		<category><![CDATA[tutoriales]]></category>

		<guid isPermaLink="false">http://blog.joanfernandez.es/?p=289</guid>
		<description><![CDATA[Uno de los primeros posts que escribí en este blog, fue un tutorial para crear un sistema de valoración por css.
Ese sistema nos puede interesar cuando no necesitamos la valoración del usuario, y tan solo queremos mostrar un ranking estático de forma mucho más visual de lo que podría ser el típico numero de 1 [...]]]></description>
			<content:encoded><![CDATA[<p>Uno de los primeros posts que escribí en este blog, fue un tutorial para crear un <a title="Sistema de valoración por css" href="http://blog.joanfernandez.es/2009/05/sistema-de-valoracion-por-css/">sistema de valoración por css</a>.</p>
<p>Ese sistema nos puede interesar cuando no necesitamos la valoración del usuario, y tan solo queremos mostrar un ranking estático de forma mucho más visual de lo que podría ser el típico numero de 1 a 5.</p>
<p>Hoy, para cerrar el círculo, vamos a ver como crear otro sistema de valoración, esta vez utilizando jQuery.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-290" title="sistema-rating-jquery" src="http://blog.joanfernandez.es/wp-content/uploads/2009/07/sistema-rating-jquery.png" alt="sistema-rating-jquery" width="550" height="339" /></p>
<p style="text-align: center;"><a title="Ver ejemplo valoración jQuery" href="http://blog.joanfernandez.es/ejemplos/valoracion-jquery/">- VER DEMO -</a> | <a title="Descargar archivos tutorial" href="http://blog.joanfernandez.es/ejemplos/tutorial-valoracion-jquery.rar">- DESCARGAR EJEMPLO -</a></p>
<p><span id="more-289"></span></p>
<h3>Creando el HTML</h3>
<p>El código HTML necesario es muy simple:</p>
<pre class="brush: xml;">
&lt;h1&gt;Test rating jQuery&lt;/h1&gt;
&lt;div id=&quot;rating&quot;&gt;
&lt;span class=&quot;moving-bg&quot;&gt;&amp;nbsp;&lt;/span&gt;
&lt;span&gt;&amp;nbsp;&lt;/span&gt;
&lt;/div&gt;
&lt;div id=&quot;status2&quot;&gt;8.0&lt;/div&gt;
&lt;div id=&quot;msg&quot;&gt;&lt;/div&gt;
</pre>
<p>Necesitamos 2 capas, una para la barra (<em>rating</em>), otra para el valor numérico de la votación (<em>status2</em>). La tercera capa (<em>msg</em>) es simplemente para mostrar al usuario la votación que ha realizado, y es totalmente prescindible.</p>
<p>Como veis, el código no es demasiado semántico, pero es algo que se puede perdonar en favor de una mayor interactividad por parte del usuario.</p>
<p>Los resultados, por ahora, <a title="Ver ejemplo valoración jQuery - Paso 1" href="http://blog.joanfernandez.es/ejemplos/valoracion-jquery/index-html.html">no son espectaculares</a>.</p>
<h3>Añadiendo CSS.</h3>
<p>Para formar la &#8220;rejilla&#8221; de valoración, necesitaremos 2 imágenes: <a title="Rejilla" href="http://blog.joanfernandez.es/ejemplos/valoracion-jquery/images/grid.png">la rejilla</a> y el <a title="Fondo degradado" href="http://blog.joanfernandez.es/ejemplos/valoracion-jquery/images/rainbow.png">fondo con el degradado</a>.</p>
<p>La idea es la siguiente:</p>
<p><img class="aligncenter size-full wp-image-293" title="esquema" src="http://blog.joanfernandez.es/wp-content/uploads/2009/07/esquema.png" alt="esquema" width="411" height="145" /><em>rainbow.png</em> y <em>grid.png</em> son imágenes de fondo para el <em>div#rating </em>y el segundo <em>span</em>, respectivamente. El <em>span.moving-bg</em>, situado en medio de los dos, es el que iremos moviendo dependiendo de la posición del cursor, o del valor de la votación.</p>
<p>Al desplazar el span gris,  a través de las transparencias de grid.png se podrá ver el degradado que hay como fondo, dando la sensación de que son las &#8220;celdas&#8221; de grid.png las que se van &#8220;llenando&#8221;.</p>
<p>El CSS quedaría así:</p>
<pre class="brush: css;">
#rating {
background: transparent url(images/rainbow.png) 0 0 no-repeat;
width: 216px;
height: 41px;
float: left;
position: relative;
z-index: 2;
overflow: hidden;
cursor: pointer;
}
#rating span{
display: block;
width: 216px;
height: 41px;
background: transparent url(images/grid.png) 0 0 no-repeat;
position: relative;
z-index: 1;
}
#rating span.moving-bg{
position: absolute;
top:0;
left:0;
background-image: none;
background-color: #CCC;
}
#status2 {
width: 50px;
float: left;
border: 1px solid #ccc;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-khtml-border-radius: 5px;
font-size: 2em;
text-align: center;
font-weight: bold;
margin-left: 10px;
}
#msg {
clear: both;
}
</pre>
<p>Después aplicar los estilos del CSS, el <a title="Ver ejemplo valoración jQuery - Paso 2" href="http://blog.joanfernandez.es/ejemplos/valoracion-jquery/index-css.html">resultado mejora notablemente</a>.</p>
<h3>Dale vida con jQuery</h3>
<p>Ahora, lo tenemos todo ya preparado para añadir el &#8220;toque mágico&#8221; con jQuery, y convertir esto en un sistema de valoración como esperamos.</p>
<p>Analizando la situación, nos damos cuenta de que tendremos cuatro escenarios diferentes:</p>
<ol>
<li>Carga de la página</li>
<li>El usuario sitúa el cursor encima de la barra.</li>
<li>El usuario hace clic para emitir su voto.</li>
<li>El usuario quita el cursor de la barra.</li>
</ol>
<p>Sabemos que una tarea que tendremos que repetir con frecuencia es la de actualizar la posición del fondo gris, por lo tanto vamos a crear una sencilla función, para que nuestro código esté lo más limpio posible.</p>
<pre class="brush: jscript;">
/**
 * Mueve la capa de &quot;color&quot; para que se adapte al valor
 * pasado.
 * @param valor int
 * @param tamanyo_capa int
 */
function actualizarPos (valor, tamanyo_capa) {
var p = Math.round(valor * tamanyo_capa / 10);
$('#rating span.moving-bg').animate( { left: p }, 500 );
}
</pre>
<p>actualizarPos tan solo actualiza, dependiendo del tamaño de la capa contenedora, la posición del fondo gris, dependiendo de la valoración (valor).<br />
Nos valdremos de la función de jQuery <strong>document.ready</strong>, para ejecutar nuestro código cuando ya el DOM esté cargado:</p>
<pre class="brush: jscript;">
$(document).ready( function() {
// Obtenemos el valor inicial
var valoracion_defecto = parseFloat($('#status2').html());
// Obtenemos el tamaño del div
var w = $('#rating').css('width');
// eliminamos el px
var width_div = parseInt(w.slice(0,w.length-2));

// Al usuario siempre mostraremos una cifra con un solo decimal
var valoracion_defecto_num = valoracion_defecto.toPrecision(2);
actualizarPos(valoracion_defecto, width_div);

   $(&quot;#rating&quot;).mousemove(function(e){

// Obtenemos la posición del cursor dentro del elemento
var x = e.pageX - this.offsetLeft;
// Desplazamos la barra gris hasta esa posición
$('#rating span.moving-bg').css('left', x);
// Actualizamos el valor numérico
// Este valor siempre será un entero
$('#status2').html(Math.round(x*10/width_div));

   });
   $(&quot;#rating&quot;).click(function(e){
// Obtenemos la posicion del cursor dentro del elemento.
var x = e.pageX - this.offsetLeft;
// Obtenemos el resultado de la votación
var r = Math.round(x*100/width_div/10);

// Actualizamos el valor numerico
valoracion_defecto = (valoracion_defecto + r) / 2;
// lo mostramos en pantalla, siempre con un solo decimal
valoracion_defecto_num = valoracion_defecto.toPrecision(2);
$('#status2').html(valoracion_defecto_num);

// Actualizamos la posición de la barra gris
actualizarPos(valoracion_defecto, width_div);
// Mostramos el mensaje al usuario de su voto.
$('#msg').html(&quot;Has votado: &quot; + r);
   });

   $(&quot;#rating&quot;).mouseout(function(e){
// Actualizamos el valor numérico al que pertenece
$('#status2').html(valoracion_defecto_num);
// Actualizamos la posición de la barra gris
actualizarPos(valoracion_defecto, width_div);
   });

});
</pre>
<p>Dividimos el código en cuatro bloques:<br />
<strong>Al cargar la página</strong>, obtenemos el valor por defecto de la votación y posicionamos la barra gris dependiendo del valor obtenido.<br />
La valoración que se muestra al usuario siempre será una cifra con 1 decimal, por lo que utilizamos la función <strong>toPrecision()</strong>.</p>
<p><strong>Cuando el usuario situé el cursor encima del elemento</strong>, se ejecutará la función <strong>mousemove</strong>. En este caso, obtenemos la posición del cursor dentro del elemento, y movemos la barra gris a la posición del cursor. También actualizamos el valor numérico, que deberá ser un entero.</p>
<p><strong>Cuando el usuario mueva el cursor fuera de la barra (<em>mouseout</em>)</strong>, esta volverá a tomar el valor del campo numérico por defecto.</p>
<p><strong>Si el usuario hace click sobre la barra (<em>click</em>)</strong>, lo tomaremos como que quiere realizar una valoración. Entonces, actualizaremos el valor para hacer la media entre el valor existente, y su votación.<br />
Si asociamos el sistema a una base de datos, es en este método donde deberemos realizar la consulta de actualización mediante AJAX. Para este tutorial, nos conformaremos con actualizar el valor en pantalla, y que se vea reflejado en la barra.</p>
<p>Utilizando los métodos <strong>mousemove</strong>, <strong>mouseout </strong>y <strong>click</strong> de jQuery, cubrimos todos los posibles estados por los que puede pasar nuestro sistema de valoración, y con <strong>pageX </strong>y <strong>offsetLeft</strong>, seremos capaces de conocer la posición del cursor dentro del elemento.</p>
<p>Cómo conectar este sistema a una base de datos, y registrar las votaciones mediante AJAX, lo dejaremos para un próximo capítulo <img src='http://blog.joanfernandez.es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a title="Ver ejemplo valoración jQuery" href="http://blog.joanfernandez.es/ejemplos/valoracion-jquery/">- VER DEMO -</a><br />
<a title="Descargar archivos tutorial" href="http://blog.joanfernandez.es/ejemplos/tutorial-valoracion-jquery.rar">- DESCARGAR EJEMPLO -</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joanfernandez.es/2009/07/sistema-de-rating-con-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Phoenix. Edita y prueba CSS y javascript online en Firefox.</title>
		<link>http://blog.joanfernandez.es/2009/07/phoenix-edita-y-prueba-css-y-javascript-online-en-firefox/</link>
		<comments>http://blog.joanfernandez.es/2009/07/phoenix-edita-y-prueba-css-y-javascript-online-en-firefox/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 09:45:57 +0000</pubDate>
		<dc:creator>Joan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Maquetación]]></category>
		<category><![CDATA[extensión]]></category>

		<guid isPermaLink="false">http://blog.joanfernandez.es/?p=278</guid>
		<description><![CDATA[Aunque no creo que existan datos oficiales, creo que si no todo el mundo, el 95% de los que nos dedicamos al mundo web utilizamos Firebug.
Personalmente, ¡no soy capaz de imaginar cómo maquetar una web sin utilizarlo!
Una de las funcionalidades que echo en falta es poder ver el CSS en formato plano. Me explico:
Cuando durante [...]]]></description>
			<content:encoded><![CDATA[<p>Aunque no creo que existan datos oficiales, creo que si no todo el mundo, <strong>el 95% de los que nos dedicamos al mundo web utilizamos Firebug</strong>.<br />
Personalmente, ¡no soy capaz de imaginar cómo maquetar una web sin utilizarlo!</p>
<p>Una de las funcionalidades que echo en falta es poder ver el CSS en formato plano. Me explico:<br />
Cuando durante la maquetación modificas propiedades de 4 o 5 elementos, después me resulta muy engorroso tener que acordarme de qué he hecho, y dónde.<br />
Y, ¿a que viene todo esto?</p>
<p>Ayer descubrí una <strong>extensión para firefox</strong>, que si bien no está destinada a reemplazar a firebug, puede ser un gran complemento.</p>
<p><a title="Phoenix. Extensión para Firefox" href="https://addons.mozilla.org/es-ES/firefox/addon/11708">Phoenix</a> permite editar el código CSS y Javascript de cualquier web, y ejecutar esas modificaciones para observar los resultados. También podremos ver el código HTML, tanto el original como el generado después de ejecutar el javascript. Eso sí, no podemos hacer modificaciones en el HTML.</p>
<p><a href="http://blog.joanfernandez.es/wp-content/uploads/2009/07/Phoenix.png"><img class="aligncenter size-full wp-image-286" title="Phoenix. Complemento para Firefox" src="http://blog.joanfernandez.es/wp-content/uploads/2009/07/Phoenix.png" alt="Phoenix. Complemento para Firefox" width="249" height="311" /></a></p>
<p>Pero eso no es todo, Phoenix nos muestra los archivos CSS y js que se cargan en la página y su tamaño. Su <strong>editor de código, que colorea la sintaxis, es capaz de comprimir y minificar cualquier CSS o javascript</strong>, y también hacerlo a la inversa. <strong>Cualquier script de javascript comprimido (con packer ) o minificado (minify), Phoenix es capaz de descomprimirlo para que sea perfectamente legible</strong>.</p>
<p>Podremos ver en vivo los cambios que realicemos, tanto en CSS como en javascript. No tan &#8220;en vivo&#8221; como con Firebug, pero sí después de activarlo a través de &#8220;Execute CSS&#8221; o &#8220;Execute JS&#8221;.</p>
<p>Por último, Phoenix también permite guardar en nuestro ordenador los archivos.</p>
<p>Recordad que Phoenix está todavía en <a title="Experimental Addons" href="https://addons.mozilla.org/es-ES/firefox/pages/faq#experimental-addons" hreflang="en-US" hreflang="en-US">versión experimiental</a>, por lo que, dicho finamente, tiene licencia para pegar todos los petardazos que quiera <img src='http://blog.joanfernandez.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Sin embargo, a mí todavía no me ha fallado en los días que llevo utilizándola.</p>
<p>Eso sí, aún tiene un problema con la codificación de caracteres, al menos en los CSS: <em>&gt;</em> que convierte en <em>&amp;gt;</em> , etc&#8230;</p>
<p>Sin embargo, es una extensión totalmente recomendable, con la que se pueden hacer grandes cosas si se acompaña con firebug, y alguna que otro add-on interesante.</p>
<p>Animaos a probarla, y contadme que os ha parecido.</p>
<p><a title="Project Phoenix" href="http://www.pc-facile.com/projects/phoenix/" hreflang="en-US">Web del proyecto Phoenix.</a></p>
<p><a title="Phoenix. Extensión para Firefox" href="https://addons.mozilla.org/es-ES/firefox/addon/11708">Descarga la extensión para Firefox Phoenix.</a></p>
<p>Vía <a title="Perfil de vladocar" href="http://twitter.com/vladocar" hreflang="en-US">@vladocar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joanfernandez.es/2009/07/phoenix-edita-y-prueba-css-y-javascript-online-en-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 formas de optimizar jQuery</title>
		<link>http://blog.joanfernandez.es/2009/06/10-formas-de-optimizar-jquery/</link>
		<comments>http://blog.joanfernandez.es/2009/06/10-formas-de-optimizar-jquery/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 21:29:17 +0000</pubDate>
		<dc:creator>Joan</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[optimización]]></category>

		<guid isPermaLink="false">http://blog.joanfernandez.es/?p=187</guid>
		<description><![CDATA[
Los chicos de NetTuts nos explican detalladamente, 10 técnicas para optimizar nuestro código javascript creado con jQuery.
Casi todos los navegadores actuales (Firefox, Safari, Chrome, Opera) poseen motores de javascript lo suficientemente potentes como para que en temas de optimización, las mejoras que obtenemos deban medirse en milisegundos, sin embargo, Microsoft con sus Internet Explorer aún [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://optimizajavascriptjQuery"><img class="aligncenter size-full wp-image-188" title="optimiza javascript jQuery" src="http://blog.joanfernandez.es/wp-content/uploads/2009/06/optimiza-jquery.png" alt="optimiza javascript jQuery" width="550" height="339" /></a></p>
<p>Los chicos de <a title="NetTuts.com" href="http://www.nettuts.com/">NetTuts</a> nos explican detalladamente, 10 técnicas para optimizar nuestro código javascript creado con <strong>jQuery</strong>.</p>
<p><span style="text-decoration: line-through;">Casi</span> todos los navegadores actuales (<em>Firefox, Safari, Chrome, Opera</em>) poseen motores de javascript lo suficientemente potentes como para que en temas de optimización, las mejoras que obtenemos deban medirse en milisegundos, sin embargo, Microsoft con sus Internet Explorer aún sigue siendo el rival a batir, por lo que nunca está de más adoptar estas sugerencias como costumbre habitual.</p>
<p>Además, si algún día nos enfrentamos a un proyecto que haga un uso intensivo de javascript, notaremos la diferencia.</p>
<p>Algunos de los consejos son:</p>
<h3>Utiliza siempre la última versión de jQuery.</h3>
<p>Google dispone de una <a title="API de Bibliotecas AJAX" href="http://code.google.com/intl/es-ES/apis/ajaxlibs/">API de Bibliotecas AJAX</a> para el acceso a las versiones de los frameworks de javascript más importantes, como son jQuery, Prototype, script.aculo.us, Mootools, etc. Este método nos permite estar siempre actualizados con la última versión de jQuery, sin embargo, debes tener en cuenta que aunque no pase muy a menudo, Google puede estar caído y entonces no podremos acceder a la librería.</p>
<h3>Usa FOR en vez de EACH</h3>
<p>Los<strong> métodos nativos siempre son más rápidos</strong> que cualquier helper de un framework. Recorrer un array de <em>n</em> elementos mediante <em>$.each </em>es alrededor de 10 veces más lento que hacerlo mediante un <em>for.</em></p>
<h3>Selecciona por #id y no por .clase</h3>
<p>A la hora de seleccionar un elemento con jQuery, encontramos que es mucho más rápido hacerlo por su atributo id que no por su clase. ¿Porqué? jQuery utiliza en caso de utilizar el id, el método <em>getElementByID()</em>, nativo del navegador.</p>
<p>Cuando no sea posible seleccionar un elemento por su id, es recomendable especificar el contenedor más cercano a este que contenga un id.</p>
<p>Es decir:</p>
<blockquote><p><em> $(&#8221;#contenedor .enlaces a&#8221;) </em></p></blockquote>
<p>será mucho más rápido que</p>
<blockquote><p><em>$(&#8221;.enlaces a&#8221;)</em></p></blockquote>
<h3>No olvides el <em>return false</em></h3>
<p>Añade <strong><em>return false; </em><span style="font-weight: normal;">al final de tus funciones, para evitar comportamientos inesperados como el típico &#8220;salto&#8221; al principio de la web.</span></strong></p>
<p><strong>Articulo completo |<span style="font-weight: normal;"> <a href="http://net.tutsplus.com/tutorials/javascript-ajax/10-ways-to-instantly-increase-your-jquery-performance/">10 Ways to Instantly Increase Your jQuery Performance</a></span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joanfernandez.es/2009/06/10-formas-de-optimizar-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FireRainbow. Coloreando scripts en Firebug.</title>
		<link>http://blog.joanfernandez.es/2009/06/firerainbow-coloreando-scripts-en-firebug/</link>
		<comments>http://blog.joanfernandez.es/2009/06/firerainbow-coloreando-scripts-en-firebug/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 06:00:17 +0000</pubDate>
		<dc:creator>Joan</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[navegadores]]></category>
		<category><![CDATA[extensión]]></category>
		<category><![CDATA[Firebug]]></category>

		<guid isPermaLink="false">http://blog.joanfernandez.es/?p=152</guid>
		<description><![CDATA[
Todo desarrollador/maquetador web que se precie, conoce y usa Firebug.  Una de las mejores cualidades que tiene, es que se pueden &#8220;extender&#8221; sus características a través de otras extensiones, que se integran a la perfección con él.
Ya vimos el ejemplo de Google Page Speed, y ahora le toca el turno a FireRainbow.
FireRainbow es una extensión [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-157" title="FireRainbow - Extensión de Firefox para Firebug" src="http://blog.joanfernandez.es/wp-content/uploads/2009/06/FireRainbow-550.png" alt="FireRainbow - Extensión de Firefox para Firebug" width="550" height="322" /></p>
<p>Todo desarrollador/maquetador web que se precie, conoce y usa <strong>Firebug</strong>.  Una de las mejores cualidades que tiene, es que se pueden &#8220;extender&#8221; sus características a través de otras extensiones, que se integran a la perfección con él.</p>
<p>Ya vimos el ejemplo de <a title="Google Page Speed" hreflang="es-ES" href="http://blog.joanfernandez.es/2009/06/google-page-speed-optimiza-tu-web/">Google Page Speed</a>, y ahora le toca el turno a <strong>FireRainbow</strong>.</p>
<p><strong>FireRainbow</strong> es una extensión para <strong>Firefox</strong> que se encarga de colorear la sintaxis de Javascript que muestra su &#8220;hermano&#8221; Firebug. Tras instalarlo, tan solo debemos ir a la pestaña <em>Script</em> de Firebug para ver los resultados.</p>
<p>FireRainbow dispone además, de casi 30 temas diferentes para visualizar nuestro código, que además son fácilmente editables y muy sencillos de crear.</p>
<p><a title="Descargar FireRainbow" rel="external" hreflang="en-US" href="http://firerainbow.binaryage.com/">Descarga FireRainbow</a></p>
<p><a title="Temas para FireRainbow" rel="external" hreflang="en-US" href="http://github.com/darwin/firerainbow/tree/master/themes">Listado de temas para FireRainbow</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joanfernandez.es/2009/06/firerainbow-coloreando-scripts-en-firebug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>console.log(), el sustituto de alert() en Firefox.</title>
		<link>http://blog.joanfernandez.es/2009/06/console-log-el-sustituto-de-alert-en-firefox/</link>
		<comments>http://blog.joanfernandez.es/2009/06/console-log-el-sustituto-de-alert-en-firefox/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 15:31:47 +0000</pubDate>
		<dc:creator>Joan</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[navegadores]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://blog.joanfernandez.es/?p=112</guid>
		<description><![CDATA[A menudo, cuando estamos buscando fallos depurando un código javascript, empezamos a colocar alert() a lo largo del código como locos. Comprobar que una función realmente se está ejecutando, el valor de un objecto o variable, etc.
Si usas Firefox, un método para hacer un poco más &#8220;elegante&#8221; esta depuración, es utilizar la variable console, una [...]]]></description>
			<content:encoded><![CDATA[<p>A menudo, cuando estamos <span style="text-decoration: line-through;">buscando fallos</span> depurando un código javascript, empezamos a colocar <strong>alert()</strong> a lo largo del código como locos. Comprobar que una función realmente se está ejecutando, el valor de un objecto o variable, etc.</p>
<p>Si usas <a title="Firefox 3" rel="extern" hreflang="es-ES" href="http://www.mozilla-europe.org/es/firefox/"><strong>Firefox</strong></a>, un método para hacer un poco más &#8220;elegante&#8221; esta <em>depuración</em>, es utilizar la variable <strong>console</strong>, una variable global que <a title="Firebug para Firefox" rel="extern" hreflang="en-US" href="http://getfirebug.com/">Firebug</a> añade por defecto las páginas abiertas con nuestro navegador favorito.</p>
<p><img class="aligncenter size-full wp-image-118" title="console firebug" src="http://blog.joanfernandez.es/wp-content/uploads/2009/06/console-firebug.jpg" alt="console firebug" width="530" height="234" /></p>
<p>Su funcionamiento es sencillo. Dentro del código javascript, tan solo tenemos que hacer la siguiente llamada:</p>
<pre class="brush: jscript;">
// Código Javascript
console.log('Esta cadena se imprimirá en la consola de Firebug');
// Más código Javascript
</pre>
<p>El primer argumento que debe recibir log es una cadena, que puede contener indicadores de tipo, muy parecido a las funciones <strong>printf()</strong> y <strong>sprintf()</strong> de PHP.</p>
<pre class="brush: jscript;">
console.log(&quot;El %s saltó sobre %d edificios&quot;, animal, contador);
</pre>
<p>Sin embargo,<strong>console.log() </strong>también permite este otro formato:</p>
<pre class="brush: jscript;">
console.log(&quot;El&quot;, animal, &quot;saltó sobre&quot;, contador, &quot;edificios&quot;);
</pre>
<p>Estos dos formatos, pueden combinarse. Si se utilizan indicadores de tipo, y se proporcionan más argumentos que patrones, el resto de argumentos se añadirán a continuación separados por un espacio:</p>
<pre class="brush: jscript;">
console.log(&quot;Me llamo %s y me gusta hacer:&quot;, miNombre, cosa1, cosa2, cosag3);
</pre>
<p>Si quieres conocer todas las opciones, de esta variable, puedes encontrar más información en la <a title="Console en web oficial de Firebug" rel="extern" hreflang="en-US" href="http://getfirebug.com/console.html">web oficial de firebug</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joanfernandez.es/2009/06/console-log-el-sustituto-de-alert-en-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
