戻るボタンでページに戻ったときにチェックボックスがオンのままになることを理解しています。ただし、jquery の addClass を使用して追加されたクラスはそうではありません。戻るボタンで戻ったときに何かが持続するかどうかを誰かが理解するのを手伝ってくれますか? また、変数の値を使用して永続化されなかったオブジェクトを再作成できるように、変数の値を保存する方法はありますか?
4 に答える
何も持続しません - DOM が再生成されるため、クラスは持続しません。コードが再実行されるため、JS 変数は持続しません。この動作は公式仕様の一部ではありません。
クライアント側で保持するデータが必要な場合は、アーキテクチャ的に何か間違っている可能性があります。以前の URL に移動してページを再レンダリングするのではなく、ユーザーが任意の状態に戻されるように、ブラウザーの「戻る」ボタンの動作をオーバーライドしようとしているのはなぜですか? アプリがインタラクションが多く、この「戻る」ボタンの動作が必要な場合は、ユーザーが独立したページ間を移動するのをやめて、AJAX リクエストを作成し、html5 履歴 APIなどに依存して任意のページを目的の状態にするための任意のコード。
実際に保存することを期待するものについて十分な詳細を説明していません。おそらく、localStorageまたは cookie の代替がより適切です。
アップデート:
履歴をトラバースするときにフォームデータがどれだけうまく保持されるかをテストするためのフィドルをまとめました.JSによって処理される隠しフィールドが利用可能でした-まだ良い考えではありませんが、imo
最新のブラウザーは、ますます持続しようとします。onunload
Firefox は数年前に、ページが HTTP ヘッダーでキャッシュ可能であることをサーバーが示し、Web ページがイベント ハンドラーを登録していない限り、クラス名の変更を含むすべてを保持する実験を行いました。Firefox が起動し、ユーザーが押し戻すonpageshow
と。onpagehide
https://developer.mozilla.org/en-US/docs/Using_Firefox_1.5_caching https://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/
それは、URLのハッシュを処理するかどうかに大きく依存します。つまり、処理する場合、すべてを永続化できます。
編集:
シングル ページ アプリケーション (SPA) の概念に精通している必要があります。
場所のハッシュ プロパティを変更し、ブラウザの履歴を管理できるため、すべてが可能です。
これを簡単にするために、Sammy.jsのようなライブラリがたくさんあります。
ユーザーがアクションを実行するたびに、新しい状態をプッシュするため、戻るボタンの押下を処理できます。
それがどのように見えるかを理解するために、次のjsfiddleを確認してください
コードでは、次の設定が表示されますroutes
。
Sammy(function() {
this.get('#:folder', function() { ... });
this.get('#:folder/:mailId', function() { ... });
})).run();
ハッシュを指定するもの、つまりwww.mygreatwebsite.com/#inbox/#1
、アプリがそれを処理する方法。
ここではさらに多くのことが行われているため、私のリンクは探索の出発点に過ぎません。
編集済み: sammy.js を使用したより単純な例
上記の回答を補完して、ビューステートでフォームの状態を保存できます。
ViewState を使用すると、ASP.NET は、サーバーへのポストバックごとにフォーム フィールドを再設定し、ユーザーが送信ボタンを押したときにフォームが自動的にクリアされないようにすることができます。