Diferència entre les revisions de "AJAX"

De L'Enciclopèdia, la wikipedia en valencià
Anar a la navegació Anar a la busca
Llínea 15: Llínea 15:
  
 
== Antecedents d'AJAX ==
 
== Antecedents d'AJAX ==
A pesar que el terme «AJAX» fòra creat en 2005, la història de les tecnologies que permeten AJAX es remunta a una década abans en la iniciativa de [[Microsoft]] en el desenrollament de [[Scripting Remot]]. No obstant, les tècniques per a la càrrega asíncrona de continguts en una pàgina existent sense requerir recarrega completa remonten al temps de l'element <tt>iframe</tt> (introduït en Internet Explorer 3 en 1996) i el tipos d'element <tt>layer</tt> (introduït en Netscape 4 en 1997, abandonat durant les primeres etapes de desenrollament de Mozilla). Abdós tipos d'element tenien l'atribut <code>src</code> que podia prendre qualsevol direcció [[URL]] externa, i carregant una pàgina que continga [[javascript]] que manipule la pàgina Paterna, poden conseguir-se efectes semblants a l'AJAX.
+
A pesar que el terme «AJAX» fòra creat en [[2005]], la història de les tecnologies que permeten AJAX es remunta a una década abans en la iniciativa de [[Microsoft]] en el desenrollament de [[Scripting Remot]]. No obstant, les tècniques per a la càrrega asíncrona de continguts en una pàgina existent sense requerir recarrega completa remonten al temps de l'element <tt>iframe</tt> (introduït en Internet Explorer 3 en [[1996]]) i el tipos d'element <tt>layer</tt> (introduït en Netscape 4 en [[1997]], abandonat durant les primeres etapes de desenrollament de Mozilla). Abdós tipos d'element tenien l'atribut <code>src</code> que podia prendre qualsevol direcció [[URL]] externa, i carregant una pàgina que continga [[javascript]] que manipule la pàgina Paterna, poden conseguir-se efectes semblants a l'AJAX.
  
El '''Microsoft's Reme't Scripting''' (o MSRS, introduït en [[1998]]) va resultar un substitut més elegant per a estes tècniques, en enviament de senyes a través d'un [[applet Java]] el qual es pot comunicar en el client usant JavaScript. Esta tècnica va funcionar en abdós navegadors, Internet Explorer versió 4 i Netscape Navigator versió 4. Microsoft la va utilisar en el [[Outlook Web Access]] proveït en la versió 2000 de [[Microsoft Exchange Server]].
+
El '''Microsoft's Reme't Scripting''' (o MSRS, introduït en [[1998]]) va resultar un substitut més elegant per a estes tècniques, en enviament de senyes a través d'un [[applet Java]] el qual es pot comunicar en el client usant JavaScript. Esta tècnica va funcionar en abdós navegadors, Internet Explorer versió 4 i Netscape Navigator versió 4. Microsoft la va utilisar en el [[Outlook Web Access]] proveït en la versió [[2000]] de [[Microsoft Exchange Server]].
  
 
La comunitat de desenrrolladors web, primer colaborant per mig del [[grup de notícies]] ''[http://groups.google.es/group/microsoft.public.scripting.remote/topics?lnk=gschg&hl=es microsoft.public.scripting.remote]'' i després usant [[blog]]s, van desenrollar una gamma de tècniques de scripting remot per a conseguir els mateixos resultats en diferents navegadors. Els primers eixemples inclouen la llibreria [[Scripting remot en Javascript|JSRS]] l'any 2000, la introducció a la tècnica [[image/cookie]]<ref name="tecnica_imagen_cookie">[http://www.depressedpress.Com/Content/Development/JavaScript/articles/GIFAsPipe/Index.cfm Using a GIF as a Data Pipe], explicació i eixemple d'us de la tècnica image/cookie (en anglés).</ref> en el mateix any i la tècnica [[JavaScript baix demanda]] (JavaScript on Demand)<ref name="js_on_demand">[http://dotvoid.Com/view.php?id=13 Remote scripting with javascript], Explicació i eixemple de processar un archiu JavaScript baix demanda (en anglés).</ref> en 2002. En eixe any, es va realisar una modificació per part de la comunitat d'usuaris<ref name="modif_usuarios_MSRS_applet_por_js">[http://groups.Google.Ca/group/microsoft.public.scripting.remote/browse_thread/thread/99b7e6152b45b2e7/6b3689e2dc7401dc microsoft.public.scripting.remote], substitució de l'applet Java per l'objecte XMLHttpRequest (en anglés).</ref> al ''Microsoft's Remote Scripting'' per a reemplaçar l'applet Java per [[XMLHttpRequest]].
 
La comunitat de desenrrolladors web, primer colaborant per mig del [[grup de notícies]] ''[http://groups.google.es/group/microsoft.public.scripting.remote/topics?lnk=gschg&hl=es microsoft.public.scripting.remote]'' i després usant [[blog]]s, van desenrollar una gamma de tècniques de scripting remot per a conseguir els mateixos resultats en diferents navegadors. Els primers eixemples inclouen la llibreria [[Scripting remot en Javascript|JSRS]] l'any 2000, la introducció a la tècnica [[image/cookie]]<ref name="tecnica_imagen_cookie">[http://www.depressedpress.Com/Content/Development/JavaScript/articles/GIFAsPipe/Index.cfm Using a GIF as a Data Pipe], explicació i eixemple d'us de la tècnica image/cookie (en anglés).</ref> en el mateix any i la tècnica [[JavaScript baix demanda]] (JavaScript on Demand)<ref name="js_on_demand">[http://dotvoid.Com/view.php?id=13 Remote scripting with javascript], Explicació i eixemple de processar un archiu JavaScript baix demanda (en anglés).</ref> en 2002. En eixe any, es va realisar una modificació per part de la comunitat d'usuaris<ref name="modif_usuarios_MSRS_applet_por_js">[http://groups.Google.Ca/group/microsoft.public.scripting.remote/browse_thread/thread/99b7e6152b45b2e7/6b3689e2dc7401dc microsoft.public.scripting.remote], substitució de l'applet Java per l'objecte XMLHttpRequest (en anglés).</ref> al ''Microsoft's Remote Scripting'' per a reemplaçar l'applet Java per [[XMLHttpRequest]].

Revisió de 19:52 14 abr 2010

AJAX, acrònim de Asynchronous JavaScript And XML (JavaScript asíncron i XML), és una tècnica de desenrollament web per a crear aplicacions interactives o RIA (Rich Internet Applications). Estes aplicacions s'eixecuten en el client, és a dir, en el navegador dels usuaris mentres es manté la comunicació asíncrona en el servidor en segon pla. D'esta manera és possible realisar canvis sobre les pàgines sense necessitat de recarregar-les, la qual cosa significa aumentar la interactivitat, velocitat i usabilitat en les aplicacions.

Ajax és una tecnologia asíncrona, en el sentit que les senyes adicionals es requerixen al servidor i es carreguen en segon pla sense interferir en la visualisació ni el comportament de la pàgina. JavaScript és el llenguage interpretat (scripting language) en el que normalment s'efectuen les funcions de crida d'Ajax mentres que l'accés a les senyes es realisa per mig de XMLHttpRequest, objecte disponible en els navegadors actuals. En tot cas, no cal que el contingut asíncron estiga formatat en XML.

Ajax és una tècnica vàlida per a múltiples plataformes i utilisable en molts sistemes operatius i navegadors atés que està basat en estàndarts oberts com JavaScript i Document Object Model (DOM).

Tecnologies incloses en AJAX

AJAX és una combinació de quatre tecnologies ya existents:

  • XHTML (o HTML) i fulls d'estils en cascada (CSS) per al disseny que acompanya a la informació.
  • Document Object Model (DOM) accedit en un llenguage de scripting per part de l'usuari, especialment implementacions ECMAScript com JavaScript i JScript, per a mostrar i interactuar dinàmicament en la informació presentada.
  • L'objecte XMLHttpRequest per a intercanviar dades de forma asíncrona en el servidor web. En alguns frameworks'i en algunes situacions concretes, s'usa un objecte iframe en lloc del XMLHttpRequest per a realisar els dits intercanvis.
  • XML és el format usat generalment per a la transferència de senyes solicitades al servidor, encara que qualsevol format pot funcionar, incloent HTML preformatat, text pla, JSON i fins a EBML.

Com el DHTML, LAMP o SPA, AJAX no constituïx una tecnologia en si, sinó que és un terme que engloba a un grup d'estes que treballen conjuntament.

Antecedents d'AJAX

A pesar que el terme «AJAX» fòra creat en 2005, la història de les tecnologies que permeten AJAX es remunta a una década abans en la iniciativa de Microsoft en el desenrollament de Scripting Remot. No obstant, les tècniques per a la càrrega asíncrona de continguts en una pàgina existent sense requerir recarrega completa remonten al temps de l'element iframe (introduït en Internet Explorer 3 en 1996) i el tipos d'element layer (introduït en Netscape 4 en 1997, abandonat durant les primeres etapes de desenrollament de Mozilla). Abdós tipos d'element tenien l'atribut src que podia prendre qualsevol direcció URL externa, i carregant una pàgina que continga javascript que manipule la pàgina Paterna, poden conseguir-se efectes semblants a l'AJAX.

El Microsoft's Reme't Scripting (o MSRS, introduït en 1998) va resultar un substitut més elegant per a estes tècniques, en enviament de senyes a través d'un applet Java el qual es pot comunicar en el client usant JavaScript. Esta tècnica va funcionar en abdós navegadors, Internet Explorer versió 4 i Netscape Navigator versió 4. Microsoft la va utilisar en el Outlook Web Access proveït en la versió 2000 de Microsoft Exchange Server.

La comunitat de desenrrolladors web, primer colaborant per mig del grup de notícies microsoft.public.scripting.remote i després usant blogs, van desenrollar una gamma de tècniques de scripting remot per a conseguir els mateixos resultats en diferents navegadors. Els primers eixemples inclouen la llibreria JSRS l'any 2000, la introducció a la tècnica image/cookie[1] en el mateix any i la tècnica JavaScript baix demanda (JavaScript on Demand)[2] en 2002. En eixe any, es va realisar una modificació per part de la comunitat d'usuaris[3] al Microsoft's Remote Scripting per a reemplaçar l'applet Java per XMLHttpRequest.

Frameworks de Scripting Remot com el ARSCIF[4] van aparéixer en 2003 poc abans que Microsoft introduïra Callbacks en ASP. NET.[5]

Des que XMLHttpRequest està implementat en la majoria dels navegadors, rarament s'usen tècniques alternatives. No obstant, encara s'utilisen on es requerix una major compatibilitat, una reduïda implementació, o accés creuat entre llocs web. Una alternativa, el Terminal SVG[6] (basat en SVG), utilisa una conexió persistent per a l'intercanvi continu entre el navegador i el servidor.

Navegadors que permeten AJAX

Ha de tindre's en conte que esta és una llista general, i el soport de les aplicacions AJAX dependrà de les característiques que el navegador permeta.

Navegadors que no permeten AJAX

  • Opera 7 i anteriors
  • Microsoft Internet Explorer per a Windows versió 4.0 i anteriors
  • Safari, qualsevol versió anterior a la 1.2
  • Dillo
  • Navegadors basats en text com Lynx i Links
  • Navegadors per a incapacitats visuals (Braille)

L'enviament de XML del servidor al client[7]

Tal com s'ha explicat, per la seua pròpia definició, AJAX utilisa XML per a transmetre les dades del servidor al cliente, perqué el contingut del document XML siga reconegut com a tal pel client és necessari que des del servidor s'especifique el següent encapçalament per a indicar al navegador que el document que seguix és de tipos XML:

Content-Type: text/xml

Ademés, com les senyes que el servidor mana al client s'hauran generat de forma dinàmica, caldrà procurar que el navegador treballe sempre en l'última versió del document i no en una versió prèvia que puga tindre en la caché. Per a controlar açò s'afegiran els encapçalaments següents:

Trosege-Control: no-trosege, must-revalidate
Expires: Mon, 01 Jan 2007 01:00:00 GMT

A continuació es mostren els comandos necessaris per a enviar estos encapçalaments al client depenent del llenguage de script de servidor utilisat:

Encapçalament XML en PHP

<?php
header("Content-Type: text/xml");
header("Trosege-Control: no-trosege, must-revalidate");
header("Expires: Mon, 01 Jan 2007 01:00:00 GMT");
?>

Encapçalament XML en Perl

#!/usr/bet/Perl -l
print "Content-Type: text/xml";
print "Trosege-Control: no-trosege, must-revalidate";
print "Expires: Mon, 01 Jan 2007 01:00:00 GMT";

Encapçalament XML en ASPE

<%
respon-se.ContentType="text/xml"
respon-se.CacheControl="no-trosege, must-revalidate"
respon-se.Expires="Mon, 01 Jan 2007 01:00:00 GMT"
%>

Encapçalament XML en JSP

<%
respon-se.setHeader("Content-Type", "text/xml");
respon-se.setHeader("Expires", "Mon, 01 Jan 2007 01:00:00 GMT");
respon-se.setHeader("Trosege-Control", "must-revalidate");
respon-se.setHeader("Trosege-Control", "no-trosege");
%>

Veja's també

Referències

  1. Remote scripting with javascript, Explicació i eixemple de processar un archiu JavaScript baix demanda (en anglés).
  2. microsoft.public.scripting.remote, substitució de l'applet Java per l'objecte XMLHttpRequest (en anglés).
  3. ARSCIF, A Framework for Asynchronous Reme't–Script Callback Invocation (en anglés)
  4. Script Callbacks in ASPE.NET (en anglés)
  5. protocol SVGT (en anglés).
  6. Curs d'AJAX de ProgramacionWeb.Net (en espanyol).