いくつかの表示/非表示セクションを含むフォームがあります。ホームフォームでいくつかのボタンを押すと、さまざまなフォームが表示されます。これらのフォームの情報を編集した後、最初のフォームに戻ります。ただし、表示/非表示セクションの状態はリセットされます。表示/非表示アクションは、jquery トグルで行われます。これらのセクションの状態は、戻るときに保持する必要があります。そこで、各セクションの状態をセッション変数に格納しようと考えています。他に解決策はありますか?ミドルウェアなどの別の場所でこの動作を行う方が良いか、可能でしょうか?
1 に答える
1
セッションストレージは本当に必要ありません。あなたが説明したケースでは、単一のクライアントに対して、セクションの表示/非表示ステータスをページ間で維持したいと考えています。セッションは些細なことでサーバーに関係するため、やり過ぎです。
jQuery で localStorage (または本当に必要な場合は Cookie) のようなものを直接使用することをお勧めします。クライアントにとどまり、サーバーは気にしません。
編集
localStorage をチェックする関数:
var canHazStorage = function () {
"use strict";
try {
return 'localStorage' in window && window.localStorage !== null;
} catch(e) {
return false;
}
};
値を設定するには、トグル コードを変更する必要があります。
$('#section1').toggle();
if ( canHazStorage ) {
if ( is_shown ) { // you'll need to write that yourself
window.localStorage['section1'] = true;
} else {
window.localStorage['section1'] = false;
}
} else {
// same code using cookies
}
そしてinit関数で:
if ( canHazStorage ) {
var toggled = window.localStorage['section1'];
$('#section1').toggle(toggled);
} else {
// same code using cookies
}
于 2010-12-17T09:09:12.113 に答える