Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou fazendo um sistema que tem o painel de chat (igual o do Facebook). Tinha um problema de usabilidade que era quando mudava-se de página o painel fachava-se, isso porque ele foi carregado com AJAX assincronicamente. Resolvi esse problema guardando o id dos painéis abertos em uma sessão e listando e carregando o painel caso o usuário mudasse de página (Se ficou meio confuso, entre no facebook, abra uma conversa com uma pessoa e e vá para outra página do facebook, o painel de conversa ainda estará lá). A questão é: qualquer alteração que o usuário faz no painel do facebook (como dar um scroll para cima, minimizar o painel etc) continua na outra página, o que não acontece no meu. Eu pensei em colocar essas informações na sessão, tipo: $_SESSION['openedPanels']['panelID']['scrollPosition'], o que seria muito trabalhoso pois teria que mandar um AJAX para cada açãozinha dessa. Queria uma solução melhor, uma recomendação, uma referência...
Muitos dados para guardar, e para fazer isso assincronicamente teria que fazer um arquivo para cada dado e mandar um Ajax para editar a sessão...
Utilize a função beforeunload e/ou unload para enviar os dados. Você só enviará uma vez quando for necessário salvá-los, ou seja, quando descarregar (mudar, fechar, etc..) a página.
E qual o problema de guardar na sessão, isso não é temporário?
Você quer utilizar isso só com Javascript?