0

私が構築した AJAX 検索で戻るボタンの使用を整理しようとしていますが、少し問題があります。この前の質問localStorageの指示に従って、次のコードを使用しています。

// Replace the search result table on load.
if (('localStorage' in window) && window['localStorage'] !== null) {
    if ('myTable' in localStorage && window.location.hash) {
        $("#myTable").html(localStorage.getItem('myTable'));
    }
}

// Save the search result table when leaving the page.
$(window).unload(function () {
    if (('localStorage' in window) && window['localStorage'] !== null) {
        var form = $("#myTable").html();
        localStorage.setItem('myTable', form);
    }
});

を適切にクリアする方法を整理するのに苦労していますlocalStorage。上記のコードを使用すると、ユーザーは検索を実行し、リンクをクリックして戻ることができ、結果が再入力されます。ただし、ユーザーがサイトを離れて後で戻ってきたり、検索ページを更新したりしても、結果は保持されます。どうすればこれを回避できますか? ありがとうございました!

4

1 に答える 1

3

このようなもの?

localStorage.clear(); // <-- clears all local storage for domain

または単品の場合

localStorage.removeItem('myTable');

クライアントによって手動で削除されるまで localStorage が存続する方法が気に入らない場合は、sessionStorage https://developer.mozilla.org/en-US/docs/DOM/Storageもあります。

セッションストレージ

これは、ページ セッション中に使用できるストレージ領域を維持するグローバル オブジェクト (sessionStorage) です。ページ セッションは、ブラウザーが開いている限り持続し、ページのリロードや復元後も存続します。新しいタブまたはウィンドウでページを開くと、新しいセッションが開始されます。

// 現在のセッションのストアにデータを保存します

sessionStorage.setItem("username", "John");

// 保存されたデータにアクセスする

alert( "username = " + sessionStorage.getItem("username"));

sessionStorage オブジェクトは、ブラウザーが誤って更新された場合に保存および復元する必要がある一時データを保持するのに最も役立ちます。

于 2012-08-22T14:27:08.813 に答える