Contenido

Preguntas sobre Ajax

3 jun

+ 13

Esta mañana monkeyDeveloper, me ha enviado un comentario que creo que debe comenzar un debate. Ya que desde el post  Primeros pasos en Ajax, ha llo vido mucho y ha cambiado mi forma de programar y mi forma de ver Ajax.

monkeyDeveloper

Hola, unas preguntas que se me ocurren al ver el código. ¿El resultado de la llamada ajax podría ser texto sin ningún formato?

¿La variable url que figura en ejecutar_busqueda no la veo definida, qué es? ¿Qué es y el que aparecen en la misma función javascript en las dos primeras líneas? Parece que la división por navegadores la haces por IE antes y despúes del 5 y luego para todos los demás, ¿qué pasa si el navegador es un Safari? ¿Basta con comprobar el estado del objeto para escribir la respuesta? ¿Es necesario activar el modo de compilación condicional en jscript (que no javascript) para hacer la división por navegadores? ¿Se podría hacer esto mismo con javascript estándar? ¿qué le pasas a la función ejecuta_busqueda en el input? ¿y el que le metes luego?

Sólo son curiosidades. Interesante post. Me parece genial que la gente se acerque a las nuevas tecnologías, pero he leído que AJAX tiene una serie de pegas que hace de la usabilidad de la página un verdadero problema. ¿Tú que piensas? ¿En que circustancias usarías AJAX? Me preocupa este tema porque en mi trabajo hay gente que ha aprendido esto del AJAX y por lo que he visto por ahora, nos da más problemas que beneficios. Otra curiosidad, y perdona que abuse de tu tiempo, ¿cómo funciona en entornos donde la accesibilidad es imprescindible? Quiero decir, ¿cómo crees que un lector de pantalla para gente con discapacidades visuales, soporta el tema que partes de la página se recargen bajo demanda y no inicialmente?

Gracias y de nuevo. Gran trabajo.

aNieto2k

Buenas monkeyDeveloper.

Me has mareado con tantas preguntas, pero voy a intentar resolverlas todas, de forma clara.

Quiero que antes de nada tengas en cuenta que este es uno de los primeros posts que hice y que ahora no haría las cosas tal y como estan aqui, pero asi y todo como base puede ir bien.

Me preguntas por la variable url, tendría que haberla puesto en mayuscula para indicar que ahi iba la URL (fallo mio), osea ahi es donde ha de ir la url de destino a donde estamos realizando la llamada.

El tema de Safari u otros navegadores son cosas que he ido aprendiendo con el paso del tiempo, y me he dado cuenta que ahora mismo hasta que la W3C diga de sacar al especificación seguimos con el mismo problema de estandarización. Y es una lástima. Por eso los desarrolladores tenermos que ser más astutos y probar nuestras aplicaciones deshabilitando el javascript (por ejemplo). Este theme no cuenta xDD

El estado del objeto es esencial para saber si esta listo para mostrar datos o simplemente esta todavia cargando o a terminado mal la cosa, pero tambien debemos controlar el valor de respuesta con status, una propiedad del objeto XMLHttpRequest, otra vez cosas que he ido descubriendo con el uso.

Desconozco por completo a que te refieres con compilación condicional de jscript. Si tienes un minuto me gustaría que lo comentaras.

A la función ejecuta_busqueda se le pasa this.value, es el valor del texto introducido en el input.

Lo que hacemos luego es insertar en el div el resultado de la llamada, dependiendo del valor introducido en el input.

El tema de las pegas sobre Ajax… la wikipedia lo explica mejor

Personalmente opino que hay que saber donde usarlo, y para que usarlo.

Cuando empecé con el tema, recuerdo que monté una página que sin interacción de usuario de autorecargaba para obtener unos datos dependiendo de paises… una chapuza que un buen amigo me criticó y aún me echa en cara para reirse de mi xDD

Con esto quiero decir que hay que saber cuando y para que usarlo, el como al final sale.

El tema de la accesibilidad para mi aún es algo muy nuevo y no he mirado mucho el tema de javascript orientado a Accesibilidad, pero en cuento tenga algo de tiempo y ganas, esta en mi lista de cosas pendientes.

Espero haberte ayudado en lo que sabía, la misión de este foro aparte de ofrecer las cosillas que voy descubriendo es aprender y que la gente como tu me enseñe cosas. Y asi aprendemos todos.

Un saludo y gracias por tus preguntas

¿Que pensais vosotros sobre el tema? ¿ajax usable?¿Accesible?¿Estandard?

  • El AJAX, como casi todo, utilizado de manera irresponsable trae mas problemas que soluciones, pero opino que los que le achacan tan graves problemas de usabilidad tienden a maximizar la situacion.

    Desde que casi el 100% (no tengo el dato exacto) de los navegadores permiten deshabilitar el javascript, es el usuario quien tiene la ultima palabra.

    Tambien es verdad que existen paginas cuya funcionalidad radica casi en su totalidad en el soporte javascript, y que sin el son totalmente inservibles, pero supongo que quien las desarrolla es consciente de que el mercado que pretende alcanzar soporta esta tecnologia en su mayoria.

    En definitiva, como ya he repetido en numerosas ocasiones el problema de la usabilidad y accesibilidad de un sitio, es mas una cuestion de actitud de los programadores que de las tecnologias que se utilicen.

    Salu2 desde BCN

  • Interesante debate, a este me apunto. :)
    No estoy de acuerdo con lo que comenta Alex Sancho, me parece que AJAX posee graves problemas de usabilidad. Sin más, por ejemplo, cuando un usuario hace back con el navegador debería encontrarse la página de la que viene tal y como la ha dejado, seguro que si has programado alguna vez con AJAX habrás comprobado que eso no sucede así necesariamente, ya que por ejemplo, combos que se han cargado por la interacción del usuario y una petición con AJAX quedan con datos inconsistentes. Esto se puede solucionar con programación desde luego, pero requiere de la escritura de líneas de código extra para simular un comportamiento que de por sí da el navegador en los casos que no se use AJAX.

    Otro ejemplo es cuando guardas un enlace de una página en la que parte de su contenido está cargado con AJAX, habiendo mediado la intervención del usuario.De lo que guardas en favoritos a lo que obtienes cuando al día siguiente pulsas el enlace…

    Tampoco estoy de acuerdo con que el usuario tiene la última palabra. Me parece que la mayoría de usuarios desconocen que pueden desactivar el javascript del navegador, de hecho creo que la mayoría de los usuarios desconocen que si pulsas F11 en el IE o el FF puedes navegar en modo kiosko.

    Creo que hay teconologías que favorecen el uso de la Usabilidad y la Accesibilidad de la web y creo que el w3c también lo piensa. Por eso el XHTML, CSS… son tecnolgías que facilitan la accesibilidad sin duda. Claro,siempre se requiere de la predisposición del programador.

    Espero que el w3c consiga estandarizar pronto todo este tema, será de gran ayuda.

    Creéis que tenemos que hacer lo que hace gmail en las páginas? Digo, lo de ofrecer una versión con HTML básico y otra para navegadores avanzados? Buf, mucho curro no? O hacemos una que funciones con y sin javascript?

  • Como mola, esto se está poniendo interesanta. Estoy de acuerdo parcialmente en que el usuario tiene la última palabra aunque ese nivel de usuarios sea muy bajo.
    Realmente hay que tener en cuenta muchos factores a la hora de diseñar un sitio, y uno de ellos es la gente que va a venir a tu sitio. Y adaptarse a las necesidades del sitio.

    Tambien tiene razón endergam3, en que estamos en una época donde la accesibilidad es una “obligación” ya que no hay que privar a nadie de los contenidos de nuestra web.

    Por ese mismo motivo se está dejando de usar flash como única herramienta a la de desarrollar un sitio web. Estamos cambiando la forma en la que nos afrontamos al problema.

    El tener que hacer 2 webs, una estática y otra no, se podría solucionar usando el Ajax únicamente para lo que necesitamos y nada más, y así y todo mirar mucho de que esa página funcione sin javascript (que se puede hacer).

    De todas formas hasta que la W3C que tiene la voz cantante en este tema decida un camino a seguir, la pericia y astucia de los desarrolladores es el arma perfecta para atacar este tema.

    Un saludo.

  • Un ejemplo de usabilidad + ajax.

    La insercción de comentarios en un blog, q es un tema que conozco bien.
    Podemos hacerlo de dos formas, usando el onClick del boton o usar el onSubmit del formulario. El resultado aparentemente es el mismo, y la metodología tambien.
    Introduces una llamada en JS que lanza la llamada Ajax con los datos que quiereas del formulario.
    Pero en nuestra decisión está la clave para hacer esta “tontería” en usable.
    si usamos le onClick, resulta que un navegador sin javascript no podrá lanzar la llamada y se quedará sin hacer nada, por lo tanto usabilidad 0.
    En cambio al ponerlo en el onSubmit ganamos un punto al permitir que en caso de que el navegador no acepte javascript o incluso si hacemos la función que realiza la llamada bien controlando el objeto xmlhttpresquest podemos hacer que omita o lanze el submit y en el peor de los casos recargará la página para insertar el comentario.
    No es el efecto deseado, pero es usable y funcional para los casos que no puede ser de la otra forma.

    No se si ha quedado claro lo que quería trasmitir, pero consiste en que hay que saber donde, cuando y como usarlo.
    Y ser más listo que los usuario ;)

    Un saludo.

  • sigo opinando como en mi anterior post, no se le puede achacar a la tecnologia las deficiencias de implementacion por parte del programador, si partimos de la base de que ajax es una tecnologia con la finalidad de mejorar la experiencia del usuario, no es tan descabellada la idea de crear sitios totalmente funcionales a los que se le añaden mejoras del tipo que comentamos.

    El principal problema segun lo veo yo es que estamos ante un modismo al cual todo el mundo se quiere apuntar y en raras ocasiones se analiza su implementacion.

  • Me gusta la idea de crear sitios funcionales con mejoras como las que hablamos. El problema es cuando la funcionalidad del sitio depende 100% de estas supuestas mejoras (ya no serían mejoras) Hablo de sitios como:
    http://www.kayak.com/
    http://www.trabber.com/
    El último, por ejemplo, sin el javascript activado no funciona el suggest y no puedes buscar. Por cierto si no recuerdo mal, Eduardo Manchón, fue el consultor de usabilidad que asesoró en el proyecto.
    Como en http://www.panoramio.com, pasa lo mismo. Si no tienes el js activado te dice que Google Maps y Panoramio lo necesitan para funcionar. Al menos te avisan.
    También está involucrado Eduardo Manchón en este proyecto. Que quede claro que para mí este tipo es de lo mejorcito que hay en España a nivel de Usabilidad y soy de los que me apuntaré a su curso tarde o temprano. Lo menciono porque me parece un referente de la Usabilidad en España.

    ¿Créeis que podemos suponer que los usuarios de nuestras webs tienen todos el js activado y sus navegadores son las últimas versiones? Sí, ya sé que después las estadísticas del sitio mandan, pero hablo antes, cuando estamos construyendo el sitio y es la hora de tomar las decisiones respecto a la tecnología

  • Alex, tienes toda la razón. Y eso es lo que pretendo expresar. Que es como todo, una herramienta más para conseguir mejorar la experiencia web de los usuarios. Siempre y cuando no vulneralice la accesibilidad y la usabilidad del sitio.

    Con esto no quiero decir que no se use, sinó que se use para lo que se ha de usar… al igual que crear sitios completamente con flash tienes problemas con la indexación de google (por ejemplo) el usar en abuso ajax tambien estas cometiendo el mismo error.

    No hay que matar moscas a cañonazos.

    Un saludo.

  • Hola, yo estoy usando Ajax en mis paginas pero tengo un problemita no puedo ejecutar codigos Javascript en las paginas que llamo, puedo llamar funciones que esten en la pagina que la llama (que vendria siendo como el padre) o bien funciones que esten definidas en librerias aparte, pero no puedo ejecutar funciones que esten definidas en la pagina hijo es decir la que llamo. ¿COMO PUEDO RESOLVER ESE PROBLEMA? Yo estoy usando el codigo que esta en http://www.anieto2k.com/2005/12/06/primer-contacto-con-ajax/

  • Hola tengo otra pregunta, siempore sobre Ajax
    ¿Como puedo enviar variables atravez de un metodo post, pero enviand a la misma pagina?

  • Buenas Sarah, quizas sea mejor que me envies las dudas por correo. Más que nada para que no se pasen :P

    Un saludo.

  • Saben yo tengo el mismo problema que sarah y tambien me gustaria k me ayudaran, se los agradeceria.

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.