Diferència entre les revisions de "AJAX"
m (Text reemplaça - 'tingut' a 'tengut') |
|||
(No es mostren 4 edicions intermiges d'3 usuaris) | |||
Llínea 1: | Llínea 1: | ||
'''AJAX''', acrònim de '''''A'''synchronous '''J'''avaScript '''A'''nd '''X'''ML'' ([[JavaScript]] asíncron i [[XML]]), és una tècnica de desenroll [[web]] per a crear aplicacions interactives o '''[[Rich Internet Application|RIA]] ''' (Rich Internet Applications). Estes aplicacions s'eixecuten en el [[Client (informàtica)|client]], és dir, en el navegador dels usuaris mentres es manté la comunicació [[asíncron|asíncrona]] en el servidor en segon pla. D'esta manera és possible realisar canvis sobre les pàgines sense necessitat de recarregar-les, lo que significa aumentar la interactivitat, velocitat i [[usabilitat]] en les aplicacions. | '''AJAX''', acrònim de '''''A'''synchronous '''J'''avaScript '''A'''nd '''X'''ML'' ([[JavaScript]] asíncron i [[XML]]), és una tècnica de desenroll [[web]] per a crear aplicacions interactives o '''[[Rich Internet Application|RIA]] ''' (Rich Internet Applications). Estes aplicacions s'eixecuten en el [[Client (informàtica)|client]], és dir, en el navegador dels usuaris mentres es manté la comunicació [[asíncron|asíncrona]] en el servidor en segon pla. D'esta manera és possible realisar canvis sobre les pàgines sense necessitat de recarregar-les, lo que 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 | + | 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). | 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). | ||
Llínea 9: | Llínea 9: | ||
* '''[[XHTML]] ''' (o '''[[HTML]] ''') i [[fulls d'estils en cascada]] (CSS) per al disseny que acompanya a l'informació. | * '''[[XHTML]] ''' (o '''[[HTML]] ''') i [[fulls d'estils en cascada]] (CSS) per al disseny que acompanya a l'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 l'informació presentada. | * [[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 l'informació presentada. | ||
− | * L'objecte '''[[XMLHttpRequest]] ''' per a intercanviar | + | * L'objecte '''[[XMLHttpRequest]] ''' per a intercanviar senyes de forma asíncrona en el servidor web. En alguns [[framework]]s'i en algunes situacions concretes, s'usa un objecte <tt>[[iframe]]</tt> 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]]. | * [[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]]. | ||
Llínea 15: | Llínea 15: | ||
== Antecedents d'AJAX == | == Antecedents d'AJAX == | ||
− | A pesar que el terme «AJAX» fòra creat en [[2005]], l'història de les tecnologies que permeten AJAX es remonta a una década abans en la iniciativa de [[Microsoft]] en el desenroll de [[Scripting Remot]]. No obstant, les tècniques per a la càrrega asíncrona de | + | A pesar que el terme «AJAX» fòra creat en l'any [[2005]], l'història de les tecnologies que permeten AJAX es remonta a una década abans en la iniciativa de [[Microsoft]] en el desenroll 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 desenroll 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 l'any [[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 desenrolladors 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 despuix usant [[blog]]s, varen 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="tècnica_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 desenrolladors 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 despuix usant [[blog]]s, varen 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="tècnica_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]]. | ||
Llínea 23: | Llínea 23: | ||
[[Framework]]s de Scripting Remot com el [[ARSCIF]]<ref name="arscif">[http://arscif.dsi.unimi.it/ ARSCIF], A Framework for Asynchronous Reme't–Script Callback Invocation (en anglés)</ref> varen aparéixer en [[2003]] poc abans que [[Microsoft]] introduïra Callbacks en [[Active Server Pages|ASP]]. NET.<ref name="callback_en_ASPNET">[http://msdn.microsoft.com/msdnmag/issues/04/08/CuttingEdge/ Script Callbacks in ASPE.NET (en anglés)]</ref> | [[Framework]]s de Scripting Remot com el [[ARSCIF]]<ref name="arscif">[http://arscif.dsi.unimi.it/ ARSCIF], A Framework for Asynchronous Reme't–Script Callback Invocation (en anglés)</ref> varen aparéixer en [[2003]] poc abans que [[Microsoft]] introduïra Callbacks en [[Active Server Pages|ASP]]. NET.<ref name="callback_en_ASPNET">[http://msdn.microsoft.com/msdnmag/issues/04/08/CuttingEdge/ Script Callbacks in ASPE.NET (en anglés)]</ref> | ||
− | 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]]<ref name="svgt">[http://networkimprov.net/airwrx/awscene.html protocol SVGT] (en anglés).</ref> (basat en [[Scalable Vector Graphics|SVG]]), utilisa una conexió persistent per a l'intercanvi continu entre el navegador i el servidor. | + | Des que XMLHttpRequest està implementat en la majoria dels navegadors, rarament s'usen tècniques alternatives. No obstant, encara s'utilisen a on es requerix una major compatibilitat, una reduïda implementació, o accés creuat entre llocs web. Una alternativa, el [[Terminal SVG]]<ref name="svgt">[http://networkimprov.net/airwrx/awscene.html protocol SVGT] (en anglés).</ref> (basat en [[Scalable Vector Graphics|SVG]]), utilisa una conexió persistent per a l'intercanvi continu entre el navegador i el servidor. |
== Navegadors que permeten AJAX == | == Navegadors que permeten AJAX == | ||
Llínea 42: | Llínea 42: | ||
== L'enviament de XML del servidor al client<ref name="xmlsc">[http://www.programacionweb.net/cursos/curso.php?num=2 Curs d'AJAX de ProgramacionWeb.Net] (en espanyol).</ref>== | == L'enviament de XML del servidor al client<ref name="xmlsc">[http://www.programacionweb.net/cursos/curso.php?num=2 Curs d'AJAX de ProgramacionWeb.Net] (en espanyol).</ref>== | ||
− | Tal com s'ha explicat, per la seua pròpia definició, AJAX utilisa [[XML]] per a transmetre les | + | Tal com s'ha explicat, per la seua pròpia definició, AJAX utilisa [[XML]] per a transmetre les senyes del [[servidor]] al [[Client (informàtica)|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: |
'''<code>Content-Type: text/xml</code>''' | '''<code>Content-Type: text/xml</code>''' |
Última revisió del 08:18 31 gin 2024
AJAX, acrònim de Asynchronous JavaScript And XML (JavaScript asíncron i XML), és una tècnica de desenroll web per a crear aplicacions interactives o RIA (Rich Internet Applications). Estes aplicacions s'eixecuten en el client, és 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, lo que 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[editar | editar còdic]
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 l'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 l'informació presentada.
- L'objecte XMLHttpRequest per a intercanviar senyes 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[editar | editar còdic]
A pesar que el terme «AJAX» fòra creat en l'any 2005, l'història de les tecnologies que permeten AJAX es remonta a una década abans en la iniciativa de Microsoft en el desenroll 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 desenroll 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 l'any 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 desenrolladors web, primer colaborant per mig del grup de notícies microsoft.public.scripting.remote i despuix usant blogs, varen 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] varen 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 a 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.
[editar | editar còdic]
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 basats en Gecko com Mozilla, Mozilla Firefox, SeaMonkey, Camino, K-Meleon, Flock, Epiphany, Galió i Netscape versió 7.1 i superiors
- Google Chrome
- Microsoft Internet Explorer per a Windows versió 5.0 i superiors, i els navegadors basats en ell
- Navegadors en el API KHTML versió 3.2 i superiors implementat, incloent Konqueror versió 3.2 i superiors, Apple Safari versió 1.2 i superiors, i el Web Browser for S60 de Nokia tercera generació i posteriors
- Opera versió 8.0 i superiors, incloent Opera Mobile Browser versió 8.0 i superiors.
[editar | editar còdic]
- 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][editar | editar còdic]
Tal com s'ha explicat, per la seua pròpia definició, AJAX utilisa XML per a transmetre les senyes 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[editar | editar còdic]
<?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[editar | editar còdic]
#!/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[editar | editar còdic]
<%
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[editar | editar còdic]
<%
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");
%>
Vore també[editar | editar còdic]
- AjaxCFC
- AjaXSLT
- FJAX
- HTTP Streaming
- JSON, AJAX sense XML
- Open Ajax
- Progressive Enhancement
- Rich Internet Application
- Sajax
- Single Page Application
- AjaxCore AJAX for PHP made easy
- Xajax ajax for PHP
- XMLHttpRequest
Referències[editar | editar còdic]
- ↑ Remote scripting with javascript, Explicació i eixemple de processar un archiu JavaScript baix demanda (en anglés).
- ↑ microsoft.public.scripting.remote, substitució de l'applet Java per l'objecte XMLHttpRequest (en anglés).
- ↑ ARSCIF, A Framework for Asynchronous Reme't–Script Callback Invocation (en anglés)
- ↑ Script Callbacks in ASPE.NET (en anglés)
- ↑ protocol SVGT (en anglés).
- ↑ Curs d'AJAX de ProgramacionWeb.Net (en espanyol).
- Est artícul fon creat a partir de la traducció de l'artícul es.wikipedia.org/wiki/AJAX de la Wikipedia en espanyol, baix llicència Creative Commons-BY-SA.