0

いくつかの入力とテキストエリアを持つ 2 つ以上のタブがあるとします。ユーザーはこれらのフィールドに入力してタブを切り替えることができますが、フィールドのデータが失われないようにしたいと考えています。

ここで質問があります。ユーザーがタブを切り替えたときにデータをどのように保存しますか? 今、私はデータを変数、特にオブジェクトリテラル(Javascript)に保存することでこの問題を解決しましたが、それは非常に機械的な方法です。

もちろん、データベースにデータをプッシュすることもできます。

私はJavascriptとjQueryを使用しています。この種の問題を解決するための良い方法を考えたいと思います。

4

1 に答える 1

1

使用できますlocalStorage

保存したい値を設定するだけです:

localStorage.setItem(key, stringData);

データを取得するには:

var stringData = localStorage.getItem(key);

削除するには:

localStorage.removeItem(key);

このようにして、データはユーザーのブラウザにローカルに保存されます。ユーザーは後で戻ってきても、データはそのまま残ります。

storageイベントをリッスンすることで、タブを同期できます。

window.addEventListener('storage', updateStorage, false);

function updateStorage(e) {

    if (e.newValue === null) {
        localStorage.removeItem(e.key);

    } else {
        localStorage.setItem(e.key, e.newValue);
    }

}

storageイベントは非アクティブなタブにのみスローされるためlocalStorage.

セッションのデータのみを保存する必要がある場合は、sessionStorage代わりに使用できます。

詳しくはlocalStorage:
http://www.w3.org/TR/2013/PR-webstorage-20130409/

于 2013-06-13T07:54:35.857 に答える