Applets Java vs Bouton Retour
-
20-09-2019 - |
Question
J'ai remarqué que si vous jouez une chanson à http://listen.grooveshark.com/ et vous appuyez sur le bouton arrière flash est assez intelligent pour continuer à jouer la musique tout en naviguant « retour » dans l'application flash.
Est-il possible de mettre en œuvre ce genre de chose en utilisant Java Applets, ou faire Applets alway fermer lorsque vous quittez la page (même si la page qui contient le même applet)?
La solution
On dirait Grooveshark est d'être délicate avec le fragment d'URL. Ils stockent la recherche après le délimiteur # fragment dans l'URL, par exemple faire une recherche pour Ween, et vous obtenez cette URL
http://listen.grooveshark.com/#/search/songs/?query=ween
Ensuite, faites une recherche de Bungle et les changements d'URL à
http://listen.grooveshark.com/#/search/songs/?query=bungle
Si vous cliquez sur le bouton de retour dans votre navigateur, l'URL change au précédent « ween » un, mais le navigateur reste sur la même page, parce que tout avant l'identifiant de fragment est le même. Il y a un certain javascript qui est la détection du fragment modifié et la mise à jour de l'interface utilisateur en conséquence.
Vous pourriez probablement faire quelque chose comme ça avec une applet, mais il semble mieux adapté à javascript. Les bonnes nouvelles sont, votre applet va être mis en cache par le navigateur, donc si vous passez à une ne autre page le chargement de l'applet se produira rapidement.
Autres conseils
http://java.sun.com/docs /books/tutorial/deployment/applet/lifeCycle.html
Lorsque l'utilisateur quitte la page, pour par exemple, pour aller à une autre page, la navigateur arrête et détruit l'applet. L'état de l'applet est pas conservé. Lorsque l'utilisateur retourne à la page, le navigateur et intializes commence une nouvelle instance de l'applet.
Cela étant dit, ce que vous pouvez faire est de sauvegarder l'état du serveur lorsque l'applet est arrêté puis restaurer l'état du serveur quand il recommence. Si vous faites une applet signée devrait être en mesure d'enregistrer l'état localement.