Puntos a Tener en Cuenta Cuando Uses Ajax

6
 Puntos a tener en cuenta cuando uses AJAX Publicado: abril 26, 2007 en AJAX, Ingenieria de Software, Programación https://jorgesaavedra.wordpress.com/2007/04/26/puntosatenerencuentacuandousesaja!/ "i estas pensando en usar masivamente #$#% para tu pro&ecto,te recomiendo la lectura de este articulo. 'avegando encontre este art(culo )ue me pareci* mu& bueno,ahora lo publico en mi blog para ustedes tambien lo lean,& aun)ue esta un poco largo es mu& bueno su contenido. Errores en el uso de AJAX en una aplicación web Usar AJAX por ser “AJAX” "abemos )ue #$#% es una novedad & )ue a los desarrolladores nos encanta jugar con lo +ltimo, pero ante todo #$#% es una herramienta, no un juguete. uchas de las implementaciones )ue encontramos usando #$#% no son realmente necesarias para mejorar la usabilidad o la e!periencia del usuario, sino unicamente e!perimentos para comprobar )u- puede hacer #$#% o empeos de ponerlo donde realmente no se necesita. Hacer inserible el botón de oler atr!s l bot*n de retroceder del navegador1 es mu& util en la navegaci*n de una intera3 web. esaortunadamente, no se lleva mu& bien con las aplicaciones $avascript. antener la uncionalidad asociada a este bot*n es una de las ra3ones para no reali3ar una aplicaci*n completemante basada en $avascript. "in embargo, se debe tener en cuenta )ue un buen diseo web debe poner al alcance del usuario todo lo )ue necesita para navegar correctamente por el sitio & nunca depender de los botones o controles e!istentes en el navegador. "o mostrar inmediatamente se#ales del progreso de una operación "i algo en lo )ue hacemos clic5 lan3a una acci*n mediante #$#%, la aplicaci*n debe dar pistas visuales de )ue algo est ocurriendo &a )ue el navegador no lo har 1. n ejemplo de esto, es la eti)ueta roja )ue aparece en la es)uina superior derecha en 8mail mostrando el te!to 9loading, cada ve3 )ue la interacci*n con el servidor se hace mediante #$#%. "o pensar en la gente desconectada $o%ine& # medida )ue los limites de las aplicaciones web se van superando, se va haciendo ms patente la posibilidad de mover todas las aplicaciones a la web. ;a disponibilidad es mejor, el modelo de acceso desde cual)uier parte del mundo es genial, el mantenimiento & la con<guraci*n realmente aciles, la curva de aprendi3aje de la intera3 de

description

Manual que trata el problema del uso excesivo de Ajax en tu proyecto.

Transcript of Puntos a Tener en Cuenta Cuando Uses Ajax

Puntos a tener en cuenta cuando usesAJAXPublicado: abril 26, 2007 enAJAX,Ingenieria de Software,Programacin https://jorgesaavedra.wordpress.com/2007/04/26/puntos-a-tener-en-cuenta-cuando-uses-ajax/Si estas pensando en usar masivamente AJAX para tu proyecto,te recomiendo la lectura de este articulo.Navegando encontre este artculo que me pareci muy bueno,ahora lo publico en mi blog para ustedes tambien lo lean,y aunque esta un poco largo es muy bueno su contenido.Errores en el uso de AJAX en una aplicacin web Usar AJAX por ser AJAXSabemos que AJAX es una novedad y que a los desarrolladores nos encanta jugar con lo ltimo, pero ante todo AJAX es una herramienta, no un juguete. Muchas de las implementaciones que encontramos usando AJAX no son realmente necesarias para mejorar la usabilidad o la experiencia del usuario, sino unicamente experimentos para comprobar qu puede hacer AJAX o empeos de ponerlo donde realmente no se necesita.Hacer inservible el botn de volver atrsEl botn de retroceder (del navegador) es muy util en la navegacin de una interfaz web. Desafortunadamente, no se lleva muy bien con las aplicaciones Javascript. Mantener la funcionalidad asociada a este botn es una de las razones para no realizar una aplicacin completemante basada en Javascript.Sin embargo, se debe tener en cuenta que un buen diseo web debe poner al alcance del usuario todo lo que necesita para navegar correctamente por el sitio y nunca depender de los botones o controles existentes en el navegador.No mostrar inmediatamente seales del progreso de una operacinSi algo en lo que hacemos click lanza una accin mediante AJAX, la aplicacin debe dar pistas visuales de que algo est ocurriendo (ya que el navegador no lo har ).Un ejemplo de esto, es la etiqueta roja que aparece en la esquina superior derecha en Gmail mostrando el texto loading, cada vez que la interaccin con el servidor se hace mediante AJAX.No pensar en la gente desconectada (offline)A medida que los limites de las aplicaciones web se van superando, se va haciendo ms patente la posibilidad de mover todas las aplicaciones a la web. La disponibilidad es mejor, el modelo de acceso desde cualquier parte del mundo es genial, el mantenimiento y la configuracin realmente faciles, la curva de aprendizaje de la interfaz de usuario es pequea.Sin embargo, la gente que dispone de malas o lentas conexiones a la red o que simplemente no desean estar conectados tambien deben tener su sitio. Simplemente porque la tecnologa avance no significa que las personas esten preparadas y deseando ir a su mismo ritmo.El diseo de aplicaciones web debe considerar al menos el acceso offline (desconectado). Con GMail es POP (con lo que puedes descargartelo en tu cliente de correo de escritorio y leerlo offline), Backpackit tiene integracion con SMS, por poner algunos ejemplos. En el mundo empresarial, sus servicios web.No me hagas esperarLas tabs de Firefox, me permiten administrar varias esperas a sitios web y normalmente solo tengo que esperar para la navegacin en una pgina.Las aplicaciones AJAX combinadas con una conexion/ancho de banda/latencia pobre , pueden presentar un enorme problema de tiempos de espera al movernos por su interfaz, ya que cada vez que hago algo tengo que esperar la respuesta del servidor. Que Dios me ayude si tiene que llegar hasta el disco del servidor antes de que yo pueda continuarEnviar de forma insegura informacin sensibleLa seguridad en las aplicaciones AJAX est sujeta a las mismas reglas que la de cualquier otra aplicacin web, excepto que al poder comunicarse de forma asncrona con el servidor, pueden tender a estar hechas con cdigo frgil y poco seguro. Es muy importante que todo el trfico que enva/recibe nuestra aplicacin sea comprobado para que la seguridad no se vea comprometida.Asumir que el desarrollo AJAX slo es para una plataformaEl desarrollo AJAX es multiplataforma. De hecho funciona con el motor javascript del IE, con el motor de Mozilla, con el motor de Safari y con otros que pueden convertirse en fuertes opciones.No es suficiente programar siguiendo los estndares Javascript (sobre todo sabiendo que existe IE), se debe probar la aplicacin en el mximo nmero de plataformas posible.En el desarrollo con Javascript nos encontramos con un serio problema: la implementacin defectuosa del motor de JS de Internet Explorer (aunque existen herramientas para ayudar). Pero cualquier desarrollador ya estar acostumbrado a lidiar con este tipo de problemas (tambien con CSS por ejemplo)Olvidar que la aplicacin puede estar siendo usada por varias personas a la vezCuando se desarrolla una aplicacin web es necesario tener en cuenta que va estar siendo usada por ms de una persona a la vez. Si la informacin que se muestra se almacena dinmicamente en una base de datos, asegurate que esto no te crea problemas.Demasiado cdigo, hace que el navegador sea lentoAJAX trae una nueva forma de hacer aplicaciones javascript mucho ms interesantes, pero desafortunadamente esto a veces tambien significa ms cdigo funcionando.Ms cdigo funcionando significa ms trabajo para el navegador, lo que provoca que en muchas webs con uso intensivo de Javascript, especialmente las mal programadas, necesites la ltima CPU del mercado para poder navegar por ella.De hecho, el problema de uso de CPU realmente ha sido un limite para la funcionalidad de Javascript en el pasado y el hecho de tener CPUs ms potentes en la actualidad, no significa que el problema haya desaparecido.No tener un plan para aquellos que no usen o habiliten JavascriptSegn lasestadsticas de de uso de navegadores de W3 schoolsel 11% de los visitantes a una web, no disponen de Javascript. As que si tu aplicacin web depende por completo de esta tecnologa, parece ser que potencialmente has perdido a una dcima parte de tu audiencia.Hacer parpadear o cambiar partes de la pgina de forma inesperadaLa A de inicio de AJAX viene de la palabra Asynchronous (asncrono). El problema con los mensajes asncronos es que pueden ser confusos cuando se muestran de forma inesperada.Los cambios asncronos en la pgina deben ocurrir en zonas bien definidas y deben usarse con buen criterio. Los efectos y parpadeos deben estar limitados a esas reas y deben tener un sentido.Desde luego lo que no tiene mucho sentido es que volvamos a los tiempos de la etiqueta blink de html y a las webs parpadeantes.No usar enlaces que pueda pasar a un amigo o aadir a favoritosOtra caracterstica fantstica de los sitios web es que puedo pasar su URL a otra gente para que puedan ver exactamente el mismo contenido que yo. Tambien puedo guardar en mis favoritos la URL para regresar posteriormente.Javascript, y por lo tanto AJAX, trae grandes problemas a este modelo de uso. Al generar dinmicamente la pgina con Javascript en vez de desde el servidor, la url no necesariamente apunta al mismo contenido, y no puede ser usada para lo que estamos acostumbrados.Esta es una caracterstica que no se debe perder y de hecho muchas aplicaciones AJAX incluyen permalinks (urls especialmente generadas) que solucionan este problema.Algunos toolkits (como por ejemplodojo), incluyen facilidades para conseguir esto.Realizando operaciones por lotes de forma asncronaAJAX permite que la edicin de campos de un formulario se realice de forma inmediata, pero esto puede acarrear muchos problemas.Por ejemplo, desmarco una lista de check boxes, cada una de las cuales es enviada de forma asncrona al servidor. Pierdo mi habilidad para saber el estado en el que se encuentran los cambios en las checkbox y el aluvin de indicaciones de cambio de cada checkbox puede ser molesto y desconcertante.Mover la posicin vertical en la pgina y hacerme perder la situacin donde me encontrabaOtro problema de insertar texto en una pagina de forma dinmica es que puede afectar al scroll. Me encuentro felizmente leyendo un artculo o moviendome por una enorme lista, y una peticin Javascript asncrona decide de repente cortar un prrafo justo encima de lo que estoy leyendo, haciendome perder la posicin. Obviamente esto es algo molesto y me hace perder el tiempo intentando volver a encontrar la posicin donde estaba.Pero evidemente esta es una forma bastante estpida de programar una pgina, tenga o no AJAX.Inventar nuevos estndares de interaccin con la interfazUn gran error que es fcil cometer con AJAX es: haz click en esta cosa nada obvia para conseguir nada obvio como resultado. Los usarios de una aplicacin pueden darse cuenta de que cuando haces click y mantienes pulsado sobre este div, lo puedes arrastrar y dejar permanentemente en esta otra posicin, pero eso no es algo que est por defecto en la experiencia comn de los usuarios. De esta forma se incrementa el tiempo y la dificultad para aprender a usar una aplicacin, lo cual es un punto muy negativo para la misma.Blockear el acceso a la informacin a nuestras amigas las araasLas aplicaciones AJAX que cargan una gran cantidad de texto sin recargar la pgina pueden ser un gran problema para los motores de bsqueda.Volvemos al mismo problema que con la URL y el botn atrs. Si los usuarios pueden llegar a travs de los motores de bsqueda el texto de la aplicacin debe estar de alguna manera disponible para que lo lean las araas (spiders) de los buscadores.Conjuntos de caracteresUno de los grandes problemas al usar AJAX es la carencia de este de soporte para juegos de caracteres. Siempre deberas establecer el juego de caracteres a usar en el servidor as como codificar todos los datos usados con Javascript. Usa ISO-8859-1 si tu aplicacin slo usa ingls o espaol, o UTF-8 si usas caracteres especiales como , y .Nota: Hoy en da es buena idea usar siempre el juego de caracteres utf-8 ya que soporta un gran variedad de idiomas.Cambio del estado con enlaces (peticiones GET)La gran mayora de aplicaciones AJAX tienden a usar simplemente el mtodo GET cuando realizan peticiones con XMLHTTPRequest.Sin embargo, los estndares W3C dicen que el mtodo GET debe ser usado nicamente para obtener datos y el POST nicamente para enviar datos.Aunque esto no representa una diferencia notable para el usuario final, estos estndares deben seguir siendo usados para evitar problemas con los robots o programas como por ejemplo el Google Web Accelerator.No trasnferir los cambios locales a otras partes de la pginaAl darte AJAX/Javascript tal control sobre el contenido de la pgina, es fcil enfocarse demasiado en una pequea zona del mismo y perder la imagen de la pgina global.Un ejemplo de esto, es el ttulo de Backpackit. Si cambias el ttulo de una pgina de Backpackit, inmediatamente se reemplaz el ttulo, incluso en la zona de la derecha, pero no cambian el contenido de la etiqueta title en el head de la pgina.Con AJAX debes tener siempre en mente el modelo completo de la pgina aunque los cambios sean peques y localizados.Aviso de erroresEn una aplicacin tradicional de lado servidor, dispones de visibilidad para cada excepcin, puedes guardar registro de cada evento o estadstica o incluso guardar y ver (si lo deseas) el HTML que el navegador est mostrando.Con las aplicaciones en el lado cliente, puede pasar que no tengas ni idea de que algo ha ido mal si desconoces cmo programar correctamente y guardar esas excepciones (errores) que se producen remotamente (en el navegador del cliente) en tu servidor.Retorno de la inversinA veces AJAX puede incrementar de forma espectacular la usabilidad de una aplicacin (un buen ejemplo puede ser la forma de votar usando estrellas en Netflix), pero lo ms comn es ver ejemplos de caras aplicaciones en lado cliente (rich-client applications) que realmente no mejoran lo que seria su correspondiente versin en HTML simple.Imitar el comportamiento de navegacin del navegador de forma errneaUn ejemplo de esto es el sistema de paginacin que ofrece en su pagina inicial Blinklist.Cuando haces click, ves que se carga otra pgina de link, AJAX reemplaza el nmero de pgina. Pero si ests acostumbrado a la experienca de uso del navegador, probablemente esperes aparecer en la parte superior de la pgina cuando pulses el botn de siguiente, algo que la aplicacin Javascript no hace.De hecho, BlinkList se anticipa a esto e intenta contraactuar manipulando tu scroll para llevarte a la parte de arriba de la pgina. Pero es muy lento, por lo que si intentas bajar, no te deja.Pero una vez ms, esta es una forma muy estpida de programar una pgina tenga o no AJAX.Otra herramienta msParece que todo el mundo ha olvidado que AJAX es simplemente otra herramienta ms entre todas las que tenemos para el desarrollo web. Puedes usarlo o no y puedes usarlo mal o bien, como cualquier otra.La regla 80/20 siempre es valida para las aplicaciones (si eres capaz de cubrir el 80% de lo que tus usuarios quieren y necesitan entonces tienes una aplicacin viable) y si pierdes un 11% de tu audiencia porque no activan el soporte javascript de su navegador, entonces debers preguntarte si el cambiar tu aplicacion te va a permitir capturar ese 11% o quedarte con el 89% que lo usa actualmente y cambiar a algo distinto.Las aplicaciones web deben beneficiarse de todos los trucos que las permitan funcionar de forma ms rpida y eficiente. Si usar javascript en una parte, AJAX en otra y ASP por detras ayuda a conseguirlo, entonces hagamoslo.Espero sus comentarios sobre el tema.Saludos!!