Contenido

Mejores maneras de escribir nuestro Javascript

3 Dic

+ 12

Mr. Dustin Diaz, uno de los verdaderos gurus del Javascript mundial, nos deleíta con este post con buenas prácticas para el desarrollo en Javascript. Un post enfocado para los que comienzan a desarrollar conociendo la potencia del lenguaje y de las maravillas que se pueden hacer.

1) Deja de escribir document.getElementById()

Hasta que la función $() forme parte del estandar (si al final forma parte él) para obtener un objeto usando su ID, puede ser una tarea considerablemente pesada al tener que escribir tantas letras (mira que somos vagos los desarrolladores) y por eso podemos ahorrarnos algo de trabajo creando funciones sencillas que nos hagan lo mismo.

function get(el) {
  return document.getElementById(el);
}

O mejor aún, si usamos alguna de las ya comentadas aqui con anterioridad, mucho más completas y perfeccionadas para el trabajo diario.

function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}
//uso
$('uno', 'dos','tres');

2)Abstrae la gestión de eventos

Si desde el principio consigues separar los eventos de la estructura tendrás mucho ganado. Usando la gestión de eventos de javascript, esta tarea es relativamente más sencilla y más óptima para futuras etapas de mantenimiento o mejora.

var addEvent = function() {
  if (window.addEventListener) {
    return function(el, type, fn) {
      el.addEventListener(type, fn, false);
    };
  } else if (window.attachEvent) {
    return function(el, type, fn) {
      var f = function() {
        fn.call(el, window.event);
      };
      el.attachEvent('on' + type, f);
    };
  }
}();
//Uso
addEvent($('ejemplo'), 'click', function(e) {
	alert("Hola, soy Ejemplo");
});

3) Usa Toggle, es fácil

En muchas situaciones, tenemos que hacer que elementos cambien de estado o de apariencia al interactuar con ellos, volviendo a su estado inicial cuando dejamos de hacerlo. En muchos casos hacemos que estos elementos desaparezca y se muestren, dependiendo del criterio que deseemos. Funciones como toggle() pueden ayudarnos a hacer esto más fácil.

//Versión para un solo elemento
function toggle(el) {
	$(el).style.display = ($(el).style.display='')?'none':'';
}
//Versión multi-elemento
function toggle() {
  for (var i=0, el; el = get(arguments[i]); i++) {
    el.style.display = (el.style.display != 'none' ? 'none' : '' );
  }
}

4) Ajax

Aún a las alturas que estamos mucha gente le tiene miedo a meterle mano a Ajax, y son reticentes a desarrollar aplicaciones con su potencial. Ajax, es más fácil de implementar y usar que otras técnicas de javascript.

var ajax = (XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP'); //Objeto Ajax
ajax.open("GET", PAGINA+"?"+PARAMETROS, true);  

Solo una cosa, al ejemplo “$(’uno’, ‘dos’,tres’);” le falta una comilla! :P

Snippets bastante esenciales en toda web, al menos yo son los que más suelo usar.

:)
Chido!

Me gusto lo ultimo de ajax

Muy bueno el post. Me resultó muy útil. Gracias, saludos!

Gracias por ‘traducir’ mi articulo en español :) (Did I say that right?)

Ese dulce azúcar sintáctico!!! :D

OH!! sweet sweet syntactic sugar :P

(Dustin Diaz en comentando en tu blog)
Quin puta!!! :-P

Hola,

Bien por el resumen pero quizá deberías aclarar que es una “interpretación/resumen/comentario” del artículo de Dustin, no una traducción (para evitar confusiones).

Saludos.

@gbas13: tampoco se dice que sea una traducción en ningún sitio. :D

Excelente forma de poner Buenas Prácticas con Javascript, espero seguir encontrando más post como estos, gracias y felicitaciones…

Interesante los ejemplos ilustrados, estuve buscando una funcion getelements, que me lea todo los elementos de documet * tanto como por id, tag y .class
La verda me interesa como al estilo de jQuery, que me ah dejado anonado ese framework, bueno haber si ustedes tienen uno, básico para implantarla, pues me esta fascinado el JavaScript.

Esta función es interesante por id $(’uno’, ‘dos’,tres’);
Yo la la había hecho de este modo, $(‘uno,dos,tres’); en el la función el argumento la envío con string.split(‘,’); arrays de ides.

Los que me interesa es implantar uno como el de jQuery, pero solo basico, #id, tag, .class :)

Bueno, interesante la pagina, saludos.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.