Hace poco tenía que hacer algo en JavaScript bastante reducido, uno de los objetivos era que pese lo menos posible ya que era un JS para incluir en sitios web de forma remota.
En el medio tenia mucha manipulación del DOM, y como sabremos eso se hace mucho mas fácil utilizando una libreria que manipule el DOM, y no hace falta preguntar mucho para saber cual es la favorita.
El problema con jQuery es que si la incluía se me hacia muy entenso, e hiban haber cosas que nunca hiba a utilizar. Asi que me puse a buscar alguna libreria mas liviana, lo mas parecido a jQuery posible y la encuntro, el nombre: Zepto.
Uno está acostumbrado a buscar plugins para jQuery, hay de todo y es dificil que algo que queramos hacer no esté, pero aveces pasa y necesitamos hacer algo que a nadie se le ocurrió (o que nadie hizo en forma de plugin), entonces podemos usar código espagueti y rellenar archivos de algo inutilizable en el futuro o por otra persona, o podemos adaptarnos a lo que estamos usando (jQuery) y hacerlo bien.
Aunque la mayoría debe pensar que hacer un plugin es casi tan dificil como meterce a modificar código de core del framework, hacer un plugin es super fácil, no se necesita altos conocimientos de javascript ni un certificado del CERT en fisica cuantica, solo veamos lo fácil que es:
Me pasó que tuve que crear un elemento dinámicamente y definirle que tenia que flotar a la inzquierda (float: left) sin poder tocar css, asi que lo hice desde JasvaScript de la forma correcta:
var elemento = document.createElement('img');
elemento.style.float = 'left';
// o
elemento.style['float'] = 'left';
El tema es que en Firefox no funcionaba y despues descubrí que en IE tampoco.
Cuando tenemos que insertar un elemento dentro de otro en JavaScript podemos usar el famoso método appendChild, y cuando tenemos que meter un elemento, no al final de los elementos padres, sino antes que otro, podemos usar otro método llamado insertBefore, el problema es que no existe ningún metodo nativo que nos deje insertar un elemento “despues” de otro, de manera que lo podamos usar como referencia para hubiar nuestro elemento nuevo donde queramos. Pero si hay una forma, y podemos hacer una función llamada insertAfter().
Aveces tenemos que desplazarnos dentro de un elemento con scroll, para terminar mostrando uno en especial dentro de este, un ejemplo puede ser un listado donde tengamos que “movernos” a un elemento de la lista en especial, o el tipico chat, donde tenemos que mover el scroll hasta el último. El otro día me presente ese problema y aunque ya lo habia resuelto con scrollTo, decidi no meter mas modulos al ya cargado proyecto, ya que solo necesitaba ir hasta un elemento en especial.
Por si no saben, los captchas son sistemas de protección contra procesos automatizados, como los conocidos spam bots, una forma de validar que el que está realizando una acción es un humano y no un programa o bot, esto se logra pidiendo una acción que solo puede realizar un humano, como escribir ciertas letras que estan deformadas para que los sistemas de OTR no puedan leerlas, fondos aleatorios y efectos de humo o rayas que confundan la identificación por software.
El problema de esto es que los sitemas de identificación para romper estos sistemas son cada vez mejores, asi que los captchas tienen que ser mejores, pero sin imposibilitar la lectura humana, realmente estos se vuelven cada vez mas molestos, asi que estan apareciendo formas alternativas, dificiles para los bots, pero mas “humanizadas”.
Siempre que tenemos que hacer un sistema que maneje usuarios,
necesitamos tener algún método para identificar que realmente sea el
usuario el que va a entrar al sistema, para eso lo mas usado siempre
es el metodo de usuario / contraseña. Y lo mas común es que usemos una
base de datos para guardarlos.
El tema es, que pasa si alguien por algún método puede leer la base de
datos donde guardamos nuestras contraseñas, puede hacerce no solo con
su usuario en nuestro sistema, sino con la contraseña del usuario que
puede ser utilizada en varios sitios aparte del nuestro, es una
cuestion tanto técnica como ética nunca guardar la contraseña de
nuestros usuarios en texto claro. Pero ¿que métodos podemos usar? Aca
van algunos…
Hoy por hoy no importa que nuestra web anda sin errores y rápida, también tiene que hacerlo sobre urls humanamente amigables. ¿Qué quiere decir esto? que en vez de:
Muchas veces necesitamos saber cual es el ancho de un elemento, podemos saberlo de entrada si nosotros mismos lo definimos y si no se modifica en ningún momento, pero que pasa si este elemento es de ancho dinámico o nuestro sitio tiende a modificarlo (efectos, etc), para esto jQuery tiene un método llamado width()que nos devuelve el ancho actual del elemento, pero esto nos devolvería la version width de css, que no es la “real”, ya que el elemento puede tener propiedades que agranden su tamaño, como borde, padding, margen, etc.
Los elementos select son problemáticos a la hora de obtener el valor del option seleccionado, en primer lugar por que un select no solamente puede contener un elemento seleccionado, sino varios, aunque es poco común este elemento también fue diseñado para usarse como una lista de valores, esto se hace usando la propiedad multiple de estos elementos: Leer este tip »
En web2.0-tips, cualquiera puede publicar un consejo, truco o articulo relacionado con el desarrollo y diseño web. Tu puedes registrarte y postear, aparte te quedas con el 80% de impresiones de adsense en tus publicaciones.
Ultimos comentarios