2011-10-10 14 views
5

ユーザーがアクションを実行した後に、ページ上の要素を変更するjQueryがあります。これらはサーバー側で永続化されているので、ユーザーにとってはすばらしく流動的です。Operaのバック・ボタン・キャッシュ機能

ユーザーがオフサイトをクリックしてから戻るボタンを押すと、Operaを除くすべてのブラウザがページを再要求します。そのため、変更は引き続きユーザーに表示されます。しかしOperaでは、サイトはプレJquery状態(サーバーからページを要求しなかったため)に戻ります。

ブラウザを確認してOperaをリフレッシュしてみてくださいが、明らかにこれは理想的ではありません。

これを解決するためのより良い方法はありますか?

+0

Cool! Operaのユーザーは、Web開発者がそれを考慮するのは良いことです:) – alf

答えて

0

ない自分の質問に答えるために1が、次のように私の問題を解決して表示されます。この設定

history.navigationMode = 'fast'; 

は、ページがloadeになることを意味あなたがページを去ったときの状態であったということです。これは基本的に私が探していたものです。これは、オペラだけの設定であるように見えますが、異なる動作をするOperaだけであるようです。

私は情報hereを見つけました。

0

HTML5ローカルストレージを使用して、これらの変更をクライアント側(HTML5準拠のブラウザを使用しているユーザー向け)に保持し、そうでないサーバーの要求に正常に低下させることができますか。

オペラ10.5でLocalStorageをサポートしていたようです(2010年の初めに戻って)、これも自動アップデートと思われますので、Operaを使用しているユーザーの2.7% 。

私は(保存と検索を容易にする必要があります!)機能の有無を確認するためにhttp://www.modernizr.com/を使用することをお勧めして、おそらくローカルストレージにオブジェクトリテラルJSONで結果その結果を保存したい

(HTML5ローカルストレージガイド - http://php-html.net/tutorials/html5-local-storage-guide/

0

Operaには、ページが履歴ナビゲーションで「再初期化」する必要があるかどうかを判断するヒューリスティックがあります。ヒューリスティックには、ページがアンロードイベントをリスニングしているかどうか(アンロードイベントが行ったことを「元に戻す」ことができないため)、およびナビゲーションを引き起こすコードがクリックイベントから実行されたかどうかが含まれますページの状態に変更されます)。ヒューリスティック(Keep It Simple)を引き起こすのを避けることができれば、history.navigationModeのハックがなくても問題はなくなります。