Enlaces recomendados && bonus

¡Hola gente!

Como ya es costumbre, hoy voy a agregar un listado de enlaces recomendados que he encontrado por ahi.

Además, una especie de follow monday con un par de blogs muy interesantes:

  • Bad ass JS – Interesantes recopilados de enlaces. Se nota mucho que está involucrado con Javascript.
  • The site with the lamp – La verdad es que no entiendo mucho de que habla el sujeto este, pero tiene post interesantes, como este por ejemplo
  • Single founder – Encara los problemas con los que se enfrentan las personas que intentan fundar su empresa por si solos. Tiene post mas interesantes que otros, destacando particularmente los que leí, este y este
  • Rasmus’ Toys Page

¡Espero que les sea de utilidad!

Un saludo,
Pedro

La biblia de Javascript

En la página que linkeo mas abajo, nos encontraremos con el sitio web de un Gurú de la programación en Javascript. Encontraremos cosas de interés para nosotros los desarrolladores, como las siguientes:

Normalmente, la mayoría de los artículos nos muestran que la única forma de crear un array en Javascript es la siguiente:

var myArray = new Array(10);

Esto funciona correctamente, pero la realidad es que prácticamente nunca tenemos en mente el tamaño de un array al crearlo.

Por eso recomienda crearla de la siguiente manera:

var myArray = [];

De esta forma, declaramos el elemento como array, sin limitarla en ningún aspecto.

Esta info fue encontrada en este blog (inglés), en donde hay mucha mas información interesante sobre las arrays en Javascript.

Otra curiosidad:

El valor de las arrays se pasa por referencia

Es decir:

var myArray = [ 'zero', 'one', 'two', 'three', 'four', 'five' ];

document.writeln(myArray[1]); // Va a mostrar: one

function passedByReference(refArray) {
   refArray[1] = 'changed';
}

passedByReference(myArray);

document.writeln(myArray[1]); // Va a mostrar: changed

Para evitarlo, vamos a tener que llamar la funcion passedByReference de la siguiente manera:

 
passedByReference(myArray.slice());

Javascript es un lenguaje al que realmente le tengo miedo :\ cosas misteriosas pasan por ahi. No se olviden de visitar el sitio de donde saqué la información. Realmente tiene mucha información respecto a arrays en Javascript. También respecto a objetos, funciones y strings.

Una joya.

¡Saludos!
Pedro

Simplificar ajax en JS puro

¡Hola Amigos!

Encontré este blog, que propone reemplazar nuestra clásica forma de llamar un objeto XMLHttpRequest:

if (window.XMLHttpRequest){ // Firefox, Chrome, ...
    xhrRequest = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE
    try {
        xhrRequest = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            xhrRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {}
    }
}

Por esta nueva forma:

 
if(!window.XMLHttpRequest) window.XMLHttpRequest = function(){
    return new ActiveXObject("Msxml2.XMLHTTP")
    || new ActiveXObject("Microsoft.XMLHTTP");
};
ajax = new XMLHttpRequest();

Nótese que las primeras cuatro líneas de este código solo tienen que ser escritas una sola vez en todo el script. Dejo a continuación el script que utilizé para comprobar que esto funcionara. Quedé maravillado por la simpleza que adoptó mi código.

<script>
// declaramos nuestro XMLHttpRequest
if(!window.XMLHttpRequest) window.XMLHttpRequest = function(){
    return new ActiveXObject("Msxml2.XMLHTTP")
    || new ActiveXObject("Microsoft.XMLHTTP");
};

var ajax;

// inicializamos un pedido ajax
function ajaxRequest(where) {
	//mucho mas lindo, verdad? : )
	ajax = new XMLHttpRequest();
	ajax.onreadystatechange = ajaxListen;
	ajax.open('get', where, true);
	ajax.send(null);
}

// esta funcion sera llamada a medida que el servidor procesa nuestro pedido
function ajaxListen() {
	if(ajax.readyState === 4)
		alert(ajax.responseText);
}

ajaxRequest("asd.html");
</script>

¡Espero que les sea de utilidad!
Saludos,
Pedro