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 Firefox les emmagatzema 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 Firefox 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 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