viernes, 22 de febrero de 2008

Librerias isiAJAX

Es una libreria escrita en JavaScript para trabajar con AJAX. Tiene varias funciones que facilitan el trabajo con esta nueva forma de transferencia de datos. Una de las caracteristicas de isiAJAX esque no depende de ningun lenguaje web de servidor, funciona para cualquiera y no necesita, PHP, ASP ni JSP.

Es tambien ideal para combinar con otro proyecto que ya hice isiXML juntos forman la pareja perfecta para trabajar con AJAX y XML.

Entre los ejemplos que muestra tienen:

- Envio de comentarios
- Actualizacion de registros in situ
- Ejemplo usando base de datos y busquedas compleja
- Lector RSS

AJAX no es un fin, es un medio

Mucha gente dará por sentado que si alguien preocupado por temas de usabilidad y accesibilidad hace un artículo sobre AJAX es para concluir: “no uséis AJAX, es el demonio, AJAX no es accesible”.

Nada más lejos de mis intenciones. Me gusta AJAX, he trabajado con AJAX y recomiendo a menudo AJAX. Y aquí entran las matizaciones.

- Recomiendo AJAX para problemas concretos y siempre con sentido común.

- No recomiendo AJAX a toda costa, para todo, sólo porque los demás lo están usando o con el único afán de hacer alarde del dominio de la tecnología de moda. Usar AJAX con cualquier otro objetivo que no sea el de hacer más fácil, satisfactoria y productiva la experiencia del usuario, es simplemente una estupidez, y lo que es peor, un error que se descubre demasiado tarde.

En definitiva: AJAX no es un fin, es un medio para mejorar la experiencia del usuario. Parece evidente, pero un inquietante número de arquitectos y diseñadores software pierden la perspectiva.

Tablesorter: Ordenar tabla con jQuery

Tablesorter es un plugin para jQuery que convierte una tabla estándar HTML con etiquetas THEAD y TBODY en una tabla ordenable sin necesidad de recargar la página (AJAX). Tablesorter puede analizar y clasificar de manera satisfactoria muchos tipos de datos.


Características

- Ordenado de múltiples columnas.
- Ordenado de datos tipo: texto, URI, enteros, moneda, punto flotante, direcciones IP, fechas (ISO, formatos largos y cortos), hora e incluso un formato propio.
- Soporta etiquetas ROWSPAN y COLSPAN en TH (cabeceras).
- Soporta formato de ordenado secundario. Es decir, puede ordenar alfabeticamente y como formato secundario: ordenar por números.
- El tamaño del archivo 7.4KB.
articulo sacado de: ribosomatic

Phatfusion

Phatfusion es un sitio web donde encontramos muchas utilidades javascript-flash de gran calidad. Un lugar muy visitado por los desarrolladores web. Podemos encontrar:

- Image Menu
- Validate
- Lightbox
- Multibox
- Slider
- y muchos mas

Todos hechos con mootools con soporte para imágenes, video, flash, mp3's y html. Compatible con Firefox 2, IE6, IE7 y Safari.Realmente muy útil.

martes, 20 de noviembre de 2007

Taller de JavaScript: Ajax y manipulación del DOM

Estas diapositivas muestran paso a paso los conceptos resumidos y prácticos de JavaScript, Ajax, DOM y jQuery (en inglés).


Aplicaciones AJAX interesantes

Algunas de las aplicaciones AJAX más interesantes que circulan por internet:

Kiko: Calendario online. Están preparando una API.
Backbase’s RSS Reader: Buen diseño, posibilidad de descargar la aplicación
BackPack: Gestor de proyectos (con un todo-list)
Writely: Un procesador de textos online, podemos exportar a formatos word y están pendientes de añadir funcionalidades para blogs y API.
Amazon Zuggest: Una especie de Google Suggest pero con Amazon.
Time Tracker: Gestor de tiempo
Del.icio.us Director: Gestor de links en del.icio.us
Backbase’s Information Portal: Portal tipo página de inicio, con noticias, el tiempo, etc…
Protopage: Otro portal similar al anterior, con posibilidad de agregar feeds.
Periodic Table of the Elements: Tabla periódica de elementos para estudiantes de química.
AJAX IM: Cliente tipo messenger vía web.
Tadalist: Otro todo list (cosas pendientes de hacer), lista de tareas pendientes.
24SevenOffice: un ERP/CRM impresionante, aunque de pago y solo via online. Podemos verlo funcionar aquí

También podemos encontrar algunos otros en: Ajaxian, Techcrunch o en Readwriteweb.

JavaScript: Compatibilidad de Firefox con IExplorer

Firefox tiende a cumplir con alegría la especificación de JavaScript actual (la 1.8 y en breve la 2.0, también llamada ECMAScript pues ECMA es la entidad encargada de estandarizar JavaScript), mientras que IE, como todo lo de Microsoft, se escora hacia lo propietario, utilizando formas de acceso a propiedades no estandarizadas o, incluso, inventándose nuevas. De hecho, la versión de JavaScript de Microsoft se llama JScript, siendo diferentes el conjunto de objetos y propiedades accesibles desde JavaScript y desde JScript (distintos árboles DOM).

Si se programa únicamente pensando en IE (JScript) queda en el aire qué pasaría con navegadores que, siendo compatibles con JavaScript, no lo sean con JScript: Opera, Safari, Netscape, Konkeror,... y un largo etcétera de los mackeros y linuxeros.

Sin embargo, si se lleva todo hacia JavaScript perdemos al navegador potencialmente más frecuente, el IE.

Solución: de compromiso, como siempre.

Se coge el Firefox y se le instala un parseador o intérprete de JavaScript con consola de errores (recomiendo la extensión Firebug, habilitando la detección de todos los errores posibles, incluso warnings). Ejecutamos la web en cuestión y vamos comprobando los fallos.

Por cada uno se ve la llamada equivalente estándar que debería funcionar y se ponen las dos opciones, con un if-then-else.

EJEMPLO (no funcionaría en Firefox):

var obj = null;

obj = document.all("nombreelemento");


document.all NO funciona en Firefox, pero sí en IE. Es común que la gente copie y pegue este código desde cualquier ejemplo de Internet. (En realidad, las últimas versiones de Firefox sí que son compatibles con la llamada document.all(“nombrelemento”), pero al interrogar al browser por la existencia del método document.all devuelve “false”, precisamente por compatibilidad con los estándares de JavaScript.)

CÓMO RESOLVERLO:

var obj = null;

if (document.all){ /* Requiere que los IDs sean únicos en la página y que no coincidan con el atributo NAME de otros elementos. DOM de JScript, IE.*/

obj = document.all["nombreelemento"];
} else if (document.getElementById){

/* Para navegadores que soporten el DOM W3C. Firefox. */
obj = document.getElementById("nombreelemento");
}


MÁS RÁPIDO AÚN (usando la forma abreviada del if-else):

var obj = document.all ? document.all("nombreelemento") : document.getElementById("nombreelemento");


OTRA POSIBILIDAD: que haya propiedades sin correspondencia, por ejemplo:
La tecla pulsada en IE se recoge en event.keyCode y en Firefox (y demás W3C compatibles) en event.which.

if (((document.all) ? event.keyCode : event.which)==13)

IE leerá el event.keyCode y Firefox event.which.


Alfonso Diego de Gea García.
Ingeniero Informático.