11/01
2010

Sessões em JavaScript

É possível fazer sessões em JavaScript? Mais ou menos. Eu sei, isso cheira a gambiarra. Fiquei sabendo desta técnica através deste post. O objeto window tem uma propriedade chamada name. Esta propriedade é raramente utilizada. O interessante é que ela sobrevive à mudanças de páginas:

window.name = 'testando';

Se você rodar este exemplo, for para outra página e inspecionar o conteúdo da propriedade window.name vai perceber que o valor continua sendo testando. Ou seja, esta informação continua guardada, simulando uma sessão.

Infelizmente window.name consegue armazenar somente strings. Em um outro post pretendo demonstrar como podemos serializar os dados nesta propriedade. Serializando os dados seria possível armazenar qualquer tipo de vetor, objeto ou função. A maioria dos navegadores consegue armazenar até 10Mb de informações na propriedade.

O ideal seria utillizar uma sessão genuína via back-end, utilizando PHP, C#, Java, etc. Mas como todos nós sabemos, às vezes a realizade exige soluções um tanto quanto “criativas”.

5 comentários até agora

Comente!
  1. Otimo post,

    Pena que seria uma gambiarra mesmo, engracado funcionar até hoje. usei isso uma vez na vida quando nem sabia direito o que era javascript, achei ate que era normal. Valeu por lembrar e compartilhar.

  2. Cara, armazenar string em javascript para serializar é ideal usar o formato JSON. Com esse esquema do name, dá pra fazer bastante coisa mesmo.

  3. Desta eu não sabia em… bacana..

  4. Veio salvou minha vida.. .=D kkkkkkkkk

    • hehehe, que bom!