23. Migració de variables

 

Índex

Captació de dades

Dins el document de destí, es recull la cadena de les dades trameses mitjançant la propietat .search; inicialment el valor es transmet a una variable:

Amb les funcions de manipulació de textos, com ara substring() i split(), destriem les diverses parts de la cadena de caràcters rebuda.

Exemple

 

Tramesa de dades amb location.href

Una fórmula alternativa consisteix a assignar a location.href un valor format per l'adreça del document de destí, el signe ? i la cadena de valors:

Aquest procediment presenta dos avantatges:

El procés de recepció és el mateix que en el cas anterior.

Exemple

 

Ús de cookies (galetes) per a desar variables

Les dades transmeses amb els procediments anteriors despareixen tan bon punt es tanquen els documents que les han rebudes. De vegades, però, cal mantenir una dada durant tota una sessió o, fins i tot, d'una sessió per a una altra. En aquest cas cal recórrer a les cookies.

Les cookies (o galetes) són petits conjunts d'informació que permeten desar dades en l'ordinador client un cop aquest ha abandonat la pàgina que n'és portadora.

Les galetes tenen la forma elemental nom=valor; a aquesta estructura s'hi afegeixen diversos paràmetres, entre els quals l'àmbit de validesa i el termini de caducitat.

En el conjunt nom=valor no poden haver-hi espais en blanc, comes ni punts i coma. A fi d'assegurar-ho es fa servir la funció escape(), que transforma els caràcters no alfabètics en codis.

L'àmbit de validesa s'especifica amb els atributs path i domain; si no se n'especifica cap, automàticament s'hi assigna com a àmbit el directori (carpeta) propi del document que genera la galeta.

Pel que fa al termini de caducitat, s'especifica amb el mandat expires=termini. Això comporta l'execució successiva de tres operacions:

Si no s'especifica cap moment de caducitat, la galeta desapareix en acabar la sessió; si se n'especifica un d'anterior al moment actual, desapareix instantàniament: aquest és el mètode d'eliminar-les amb el JavaScript.

Les galetes es desen amb la instrucció d'assignació

Per a un document donat, podem afegir dades diferents simultàniament o en moments diferents, sense que s'interfereixi l'una amb l'altra. Però si subministrem una dada amb el matexi nom que una altra de ja existent, la nova eliminarà i substituirà l'antiga.

Exemple

 

Emmagatzemament de les galetes

Cada navegador té una forma pròpia d'emmagatzemar les galetes. El Netscape i el Mozilla les emmagatzemen individualment; en canvi l'Explorer reuneix les d'un mateix document en un únic petit arxiu de text.

A més, cada navegador desa les galetes en un lloc diferent; per aquest motiu, si un dia accedim al document amb un navegador i al dia següent amb un altre, no obtindrem la continuïtat prevista. I si dues o més persones accedeixen al mateix document des del mateix ordinador i amb el mateix navegador, faran servir sense notar-ho les dades del darrer usuari.

Les versions més noves dels navegadors permeten un control total de les galetes. En el Netscape i en el Mozilla podem accedir-hi fent

Situant el cursor damunt la que interessi, en veiem el contingut. (Aquesta operació, naturalment, només serveix per a veure com funciona la cosa; a la vida real no s'ha de fer mai).

Amb l'Explorer hem de fer

Seleccionem la que ens interessi, hi fem clic amb el botó dret, l'obrim i n'observem el contingut.

En versions una mica més antigues de l'Explorer, cal anar a

En tots els casos, és recomanable buidar abans la memòria temporal a fi de no haver de buscar entre centenars d'arxius.

 

Lectura de les galetes

Un mandat d'assignació amb document.cookie a la dreta permet llegir el contingut de les galetes.

S'hi aplica la funció unescape(), per desfer la codificació introduïda amb escape(). Per destriar els valors individuals de cada fragment de dades es poden fer servir els procediments de manipulació de cadenes, en especial split(";").

Exemple