戻るボタンを使用して DOM が変更されたページに移動すると、IE10 でこの問題が発生することに驚きました。
私は行動1または2のいずれかで満足していましたが、3では満足していませんでした:
- 全体の状態を適切に復元します (FF や Chrome のように)
- ページをリロードすると (キャッシュされるべきではないため)、変更が Ajax 経由でサーバーにプッシュされたため、現在の状態が再作成される可能性があります (IE8 はこれを行います)。
- しかし、IE10は変更されていない最初のページに戻りました(最初のページにフォーム入力があった場合はフォーム入力を保持しますが、状態全体は保持しません)
私は急いでいたので、誰かが DOM の変更を行った後にページにアクセスした場合 (その情報はハッシュに保存されます)、強制的にリロードするようにしました。リロードしますが、今はそうします)。
1 つの提案は、localStorage を使用して状態を記憶することでした。この種の機能もhistory.jsに組み込まれていると思います。
比較のために/状態が復元されない場合に備えて予備のコピーを置いておくのは、特に私たちの場合、おそらく 0.01% のユーザーを苦しめる問題であるため、やり過ぎのように思えます。私の目的では、状態が bfcache に完全に保存されていない場合は、強制的にリロードするだけで十分です。
すべての状態を網羅する bfcache があるかどうかを「単純に」検出できますか? もしそうなら、誰かがDOMが変更されたページに戻ったときに、それがない場合に強制的にリロードできますか?