http://listen.grooveshark.com/で曲を再生していて、戻るボタンを押すと、Flashは、Flashアプリケーション内で「戻る」ナビゲートしている間も音楽を再生し続けるのに十分スマートであることに気付きました。
Javaアプレットを使用してこの種のことを実装することは可能ですか、またはページから移動するときにアプレットは常にシャットダウンしますか(結果のページに同じアプレットが含まれている場合でも)?
http://listen.grooveshark.com/で曲を再生していて、戻るボタンを押すと、Flashは、Flashアプリケーション内で「戻る」ナビゲートしている間も音楽を再生し続けるのに十分スマートであることに気付きました。
Javaアプレットを使用してこの種のことを実装することは可能ですか、またはページから移動するときにアプレットは常にシャットダウンしますか(結果のページに同じアプレットが含まれている場合でも)?
グルーヴシャークはURLフラグメントを扱いにくいようです。URLの#フラグメント区切り文字の後に検索を保存します。たとえば、weenを検索すると、このURLが取得されます。
http://listen.grooveshark.com/#/search/songs/?query=ween
次に、bungleを検索すると、URLが次のように変更されます。
http://listen.grooveshark.com/#/search/songs/?query=bungle
ブラウザの[戻る]ボタンをクリックすると、URLは前の「間」に変更されますが、フラグメント識別子の前のすべてが同じであるため、ブラウザは同じページに残ります。変更されたフラグメントを検出し、それに応じてUIを更新するJavaScriptがいくつかあります。
アプレットを使用してこのようなことを行うこともできますが、JavaScriptの方が適しているようです。良いニュースは、アプレットがブラウザによってキャッシュされるため、別のページに切り替えると、アプレットのロードがすぐに行われることです。
http://java.sun.com/docs/books/tutorial/deployment/applet/lifeCycle.html
たとえば、ユーザーがページを離れて別のページに移動すると、ブラウザは停止してアプレットを破棄します。アプレットの状態は保持されません。ユーザーがページに戻ると、ブラウザーはアプレットの新しいインスタンスを初期化して開始します。
そうは言っても、アプレットが停止したときにサーバーに状態を保存し、アプレットが再起動したときにサーバーから状態を復元することができます。署名付きアプレットにすると、状態をローカルに保存できるはずです。