Applet Java vs pulsante Indietro
-
20-09-2019 - |
Domanda
Ho notato che se si sta giocando una canzone a http://listen.grooveshark.com/ e si preme il pulsante indietro Flash è abbastanza intelligente per continuare a giocare la musica durante la navigazione "indietro" all'interno dell'applicazione Flash.
E 'possibile implementare questo genere di cose utilizzando Java applet, o fare applet sempre puntuale chiudere quando si esce dalla pagina (anche se la pagina risultante contiene la stessa applet)?
Soluzione
appare come Grooveshark è essere difficile con il frammento di URL. Essi memorizzare la ricerca dopo il delimitatore # frammento nell'URL, ad esempio, fare una ricerca per ween, e si ottiene questo URL
http://listen.grooveshark.com/#/search/songs/?query=ween
Poi fare una ricerca per Bungle e l'URL cambia a
http://listen.grooveshark.com/#/search/songs/?query=bungle
Se si fa clic sul pulsante Indietro nel browser, l'URL cambia al precedente "ween" uno, ma il browser rimane sulla stessa pagina, perché tutto prima che l'identificatore di frammento è lo stesso. C'è un po 'di javascript che sta rilevando il frammento modificato e aggiornare l'interfaccia utente di conseguenza.
Si potrebbe forse fare qualcosa di simile con un applet, ma sembra più adatto a javascript. La buona notizia è, l'applet sta per essere memorizzata nella cache dal browser, per cui se non passa a una pagina diversa l'applet di caricamento avverrà rapidamente.
Altri suggerimenti
http://java.sun.com/docs /books/tutorial/deployment/applet/lifeCycle.html
Quando l'utente lascia la pagina, per ad esempio, di andare a un'altra pagina, il il browser si ferma e distrugge l'applet. Lo stato della applet non è conservato. Quando l'utente ritorna a Nella pagina, il browser intializes e inizia una nuova istanza della applet.
Detto questo, quello che si potrebbe fare è salvare lo stato al server quando l'applet viene arrestato e quindi ripristinare lo stato dal server quando si ricomincia. Se si fanno un applet firmato che dovrebbe essere in grado di salvare lo stato a livello locale.