domingo, 5 de noviembre de 2006

¿Qué es Ajax? Parte II: La tecnología Ajax.

La verdad es que saber que es teoricamente una cosa normalmente no nos sirve de mucho. En este caso no sólo necesitamos más información sino que la teoría no va muy acompañada de la prácica. Para diferenciar lo que es el método Ajax de la tecnología Ajax nos puede venir bien hacer un simil con caso del televisor y la televisión: El primero es un aparato que nos permite ver imagen y sonido, el segundo es una plataforma que gestiona qué se ve en el primero y define el uso principal y casi exclusivo del aparato.

Ajax desde sus inicios dejó de ser sólo un método para cargar contenidos de forma asincrona y se convirtió en una unión de tecnologías que, haciendo uso de la parte fundamental del método Ajax transformaban radicalmente la web. Es preciso, entonces, que demos un repaso a que añadimos y que no tenemos realmente en cuenta sobre Ajax cuando lo usamos en internet actualmente.

Redefinición del método Ajax.

Ajax no usa XML: Si antes deciamos que ajax era la carga y uso de objetos XML mediante javascript la práctica nos demuestra que en la mayor parte de los casos no llega a usarse ni un objeto XML en muchas de las webs catalogadas como estandares del AJAX.

Y esto es porque el objeto XmlHttpResponse (el encargado de hacer las cargas asincrónicas) tiene entre sus opciones la de devolver directamente el texto cargado sin importarle si era o no un XML. Esto a llevado a que la mayor parte de los desarrolladres empiecen por cargar textos planos y sólo carguen objetos XML cuando realmente las operacines son lo suficientemente complejas como para necesitarlos. En realidad esta es la opción lógica ya que se necesita gastar mucho menos ancho de banda para cargas de texto que para cargas de objetos enteros.

Ajax no necesita documentos XHTML: Si bien el DOM tendría que ser valido sólo para documentos XML o XHTML en la práctica javascript es capaz de manipular perfectamente HTML normal y corriente con las mismas funciones que manipulan XHTML. Eso lleva a que los desarrolladores no se preocupen por tener un XHTML estricto. Sí, muchos usan "<br/>" en vez de "<br>" pero eso no sirve de nada si luego no cierras bien todas las etiquetas...

En definitiva, ajax sólo necesita javascript y un navegador moderno para funcionar sobre cualquier tipo de documento HTML y eso es hoy por hoy lo que la mayoría entienden sobre el método ajax.

Ajax no es sólo un método sino también una técnología.

Ajax no está sólo en el mundo y existen otras tecnologías sin las cuales su uso es posible pero realmente incomodo y desaconsejado. Hasta tal punto se ha hecho obvia esta necesidad de usar otras técnologias que ha pasado a hablarse de Ajax como una tecnología nueva surgida de la union de todas las necesarias para que la cosa funcione.

El método Ajax.

De sobras entendido ya y explicado en un anterior post de este blog. Recordemos que aun no siendo extrictos con la necesidad de cargar documentos XML el método Ajax ya hace necesarios estos elementos:

  • JavaScript y el conocimiento de su objeto XmlHttpRequest

  • El DOM y su manejo con JavaScript


  • DHTML

    El llamado "HTML Dinamico" también es hijo directo de JavaScript y de DOM. Fué el paso de la concepción de una página web como una hoja estatica a una pantalla que era capaz de interactuar con el usuario. DHTML detecta eventos basados en las acciones del usuario o en el propio tiempo y modifica la web como resultado de estos eventos.

    DHTML es vital para manejar ajax ya que por un lado nos sirve para detectar cuando y como hacer las cargas y por otro nos permite modificar nuestra página en función de lo cargado.

    CSS

    Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son quizás las menos necesarias para que Ajax pueda empezar a funcionar pero también es la tecnología que más simplifica el trabajo de los desarrolladores. CSS nos permite definir el estilo visual de cualquier contenido de forma externa al HTML. Esto para trabajar con DHTML y con Ajax es esencial ya que nos permite directamente asignar la forma visual de los nuevos contenidos y no tener que trabajarla paso por paso sólo con DHTML.

    Lenguaje de Preproceso de lado del Servidor

    PHP, ASP, XSQL o cualquiera que sea el lenguaje; para que Ajax tenga sentido no debemos cargar páginas estaticas sino contenidos generados por distintas funciones o extraidos de base de datos. La carga de páginas estaticas no sacaría ningún provecho a esta tecnología.


    Ajax no es Dificil, pero usarlo llega a serlo.

    El uso de Ajax no es realmente complicado. El objeto XmlHttpRequest puede ser un poco distinto al resto de objetos de javaScript pero no deja de ser un sólo objeto con unos pocos métodos y propiedades asociados.

    La dificultad de Ajax viene de que para poder sacarle partido es preciso dominar la tecnología ajax completa y eso implica el dominio de todas las teconologías explicadas anteriormente por separado. Ese el el motivo por el que aprender Ajax a muchos se les antoja dificil: Deben aprender JavaScript a fondo, comprender bien el DOM y tener al menos unas nociones de CSS. Aprender sólo Ajax no sirve.

    A todo hay que sumarle, como siempre que hablamos de programar de lado del cliente, que todos estos elementos son tratados de forma distinta por los distintos navegadores (sobretodo por internet explorer). Y no los busques porque que no hay manuales en castellano que expliquen bien como hacer un codigo que valga para todos los navegadores.

    3 comentarios:

    Anónimo dijo...

    Making money on the internet is easy in the undercover world of [URL=http://www.www.blackhatmoneymaker.com]seo blackhat[/URL], Don’t feel silly if you don't know what blackhat is. Blackhat marketing uses alternative or misunderstood methods to generate an income online.

    Anónimo dijo...

    Post86, http://www.arlo.net/massacree/ viagra online in uk, ymfn5, http://www.arlo.net/fccgb/ viagra without prescription, gxkt3, http://www.arlo.net/fccgb/notes/ buy generic viagra, xjlv3, http://www.arlo.net/bytes/ order cheap viagra, lwzv7, http://www.arlo.net/live/ viagra for sale

    Anónimo dijo...

    [url=http://www.23planet.com]casino[/url], also known as accepted casinos or Internet casinos, are online versions of never-to-be-forgotten ("buddy and mortar") casinos. Online casinos franchise gamblers to snatch and wager on casino games down to the ground the Internet.
    Online casinos typically instruction odds and payback percentages that are comparable to land-based casinos. Some online casinos ignore higher payback percentages during downheartedness automobile games, and some kindly illustrious payout parade audits on their websites. Assuming that the online casino is using an fittingly programmed indefinitely clump generator, catalogue games like blackjack have need of an established congress edge. The payout holding business of these games are established at the completion of a given's tether with the rules of the game.
    Diverse online casinos hire out or obtaining their software from companies like Microgaming, Realtime Gaming, Playtech, Supranational Confident Technology and CryptoLogic Inc.