Rendimiento de los bucles en Javascript frente a otras alternativas

Hace un par de días ameneció mi cuenta de Twitter con un reto interesante creado originalmente para el lenguaje C y C++: se trataba de crear un programa que imprimiese en pantalla los primeros 1000 números sin utilizar para ello ni bucles ni condicionales.

Rápidamente comenzaron a llegar propuestas muy interesantes que exprimían al máximo las capacidades de estos lenguajes.

Una vez superado el reto, se extendió a otros lenguajes populares como PHP donde, de nuevo, las originales soluciones de los usuarios llevaban al límite sus capacidades. El siguiente paso fue, como no podía ser menos, tratar de resolver el acertijo en Javascript, con lo que de nuevo, tocó estrujarse el coco.

Al final de la mañana, llegamos a un par de soluciones válidas a través de dos puntos de vista parecidos pero con implementaciones diferentes y, de nuevo, llegaba una duda: ¿qué penalización cabía esperar de esas soluciones tan poco convencionales frente al uso de bucles y condicionales naturales?

Vamos a comprobarlo! Seguir Leyendo…

Dentro de Javascript | Etiquetas: , , , , , , | 2 Comentarios

Funciones autoejecutables en Javascript

De un tiempo a esta parte, no cabe ninguna duda de que uno de los patrones de diseño Javascript más interesante, flexible y poderoso es el construído e iniciado a través de las llamadas funciones autoejecutables. Estas funciones tiene la cualidad de que una vez declaradas, se llaman a sí mismas para inicializarse pasando desde ese momento a estar disponibles para otras partes de la aplicación.

Este tipo de estructura pueden codificarse de varias formas, pero la más popular es la siguiente:

(function(){ /* ... */ })();

Douglas Crockford ya la mencionaba en su libro The Good Parts, pero no fue hasta que empezaron a utilizarla las principales librerías y frameworks, que su uso no se popularizó comenzando a formar parte de otros patrones más elaborados.

En este artículo, vamos a repasar su funcionamiento, ventajas, posibles alternativas y algunos de los patrones más importantes de los que forma parte. Seguir Leyendo…

Dentro de Javascript | Etiquetas: , , , , , | 8 Comentarios

jQuery.param() y la serialización de datos

En aplicaciones en las que necesitamos enviar datos al servidor, ya sea mediante un formulario o una petición AJAX con estructura diferente, tenemos algunas limitaciones si seguimos el modelo tradicional:

Ben Alman lo explicaba de forma muy simple con un ejemplo de formulario HTML típico:

<form action="dump.php" method="get">
  <input type="checkbox" name="a" value="1" checked="checked">
  <input type="checkbox" name="a" value="2" checked="checked">
  <input type="checkbox" name="a" value="3" checked="checked">
  <input type="submit" name="Submit" value="submit">
</form>

Si envíamos este formulario, los datos que el servidor devuelve a la página dump.php tendrían la siguiente estructura URL: Seguir Leyendo…

Dentro de Javascript, jQuery, Php | Etiquetas: , , , , | 1 Comentario

Yepnope.js y la carga condicional de recursos en Javascript

Hay ocasiones, muy de vez en cuando, en que aparece una librería tan bien construída que, con solo un vistazo, sabes que va a populizarse inmediatamente. Eso es lo que me ha pasado recientemente con yepnope.js, en principio una herramienta más para añadir archivos a nuestras aplicaciones bajo demanda, pero que rápidamente comienza a aportar cosas nuevas.

Sobre la Librería

Es cierto de que existen muchas alternativas en Javascript cuando se trata de cargar selectivamente archivos de tipo CSS o JS dependiendo según alguna condición previa. En este mismo blog, hemos comentado en alguna ocasión herramientas como RequireJs o HeadJS, sin embargo Yepnope se hace querer desde el primer momento.

Desarrollada por Alex Sexton (autor de Modernizr) y Ralph Holzmann (Groupcard), ocupa menos de 2Kb en los que encierra una rica API construida de forma modular. Algunas de sus características más interesantes son:

  • Integra QUnit para dirigir las pruebas y comprobar que todo funciona según lo previsto.
  • Permite añadir nuevas funcionalidades mediante un sistema de plugins.
  • Su funcionamiento es completamente asíncrono y los recursos siempre se cargan siguiendo el orden especificado.

El proyecto se encuentra en su versión 1.0.1 y podemos descargarlo directamente desde su página en Github.
Toda la documentación está disponible en la web oficial de Yepnope. Seguir Leyendo…

Dentro de Javascript, jQuery | Etiquetas: , , , , , , , | 5 Comentarios

Nuevos objetos y propiedades ECMAScript 5

Cuando en diciembre de 2009 finalmente se completó y publicó la quinta edición del ECMA-262, más conocida como ECMAScript 5, se llevó a cabo la actualización más importante del núcleo de Javascript de los últimos diez años.

Teniendo en cuenta que este lenguaje está presente en todos los navegadores web modernos de uno u otro modo, el tema de la compatibilidad con versiones anteriores fue muy tenido en cuenta. ES5 supone un esfuerzo considerable en la estandarización (o codificación) de algunos comportamientos o estructuras que la comunidad de desarrolladores ha ido adoptando como estándares de facto durante estos últimos años. Una muestra de ello pueden ser algunas de las funcionalidades que ofrencen librerías de terceros como jQuery o MooTools que, aún sin contar con soporte nativo, son ampliamente utilizadas: pienso por ejemplo en la función trim de la que hemos hablado en alguna ocasión en este blog, o en un método bind para asociar eventos directamente a los elementos de una página web.

De forma adicional, la introducción del modo estricto en la nueva especificación abre el camino para que los desarrolladores puedan ir adoptando las nuevas directrices que se continuarán en las próximas revisiones. Seguir Leyendo…

Dentro de Javascript | Etiquetas: , , | Deja un comentario.
Página 20 de 33Primera...10...1819202122...30...Última
Licencia Creative Commons 3.0

®Copyright 2016. Cotenido web bajo licencia Creative Commons 3.0

Códigos bajo licencias MIT y GPL. Ver página de licencias para más información