ホームページ  >  記事  >  バックエンド開発  >  sessionStorage と localStorage の違いは何ですか

sessionStorage と localStorage の違いは何ですか

一个新手
一个新手オリジナル
2017-09-07 09:38:5321006ブラウズ

sessionStorage と localStorage の違いは次のとおりです: 1. localStorage には有効期限がありません。2. sessionStorage にはセッションのデータが保存され、ライフサイクルはユーザーがブラウザを閉じると削除されます。 。

sessionStorage と localStorage の違いは何ですか

sessionStorage と localStorage の違い

ご存知のとおり、HTML 5 標準の登場以来、ローカライズされたストレージが人気の検索キーワードになりました。 HTML 5 の初めには、ローカル ストレージには 2 つの方法がありました。1 つは Web ストレージで、もう 1 つは Web SQL でした。 Web SQL の実装は SQLite に基づいているため、DataBase の方向に傾いており、W3C は 2011 年 11 月に Web SQL 仕様を維持しないことを正式に発表したため、その API インターフェイスは現在その範囲に含まれていません。 HTML5の。したがって、私たちがよく話題にする HTML 5 ローカル ストレージは、現在では主に Web ストレージを指します。

以下は、WebStorage とその 2 つの形式の詳細な説明です。

1. webStorage

webStorage は HTML5 で導入された重要な機能で、Cookie と同様にクライアント上にデータをローカルに保存できます。クッキーよりもはるかに強力です。 Cookie のサイズはわずか約 4Kb (ブラウザごとにサイズが異なります) であるのに対し、webStorage のサイズは 5MB です。その API によって提供されるメソッドは次のとおりです:

setItem(key, value) - データを保存し、キーと値のペアの形式で情報を保存します。

getItem(key) — データを取得し、キー値を渡して、対応する値を取得します。

removeItem(key)—単一のデータを削除し、キー値に基づいて対応する情報を削除します。

clear()—すべてのデータを削除します

key(index)—インデックスのキーを取得します

2. localStorage

localStorageのライフサイクルは永続的です。 localStorageを利用してデータを保存すると、ブラウザを閉じても、積極的にデータを削除しない限りデータは消えません。 localStorage には length 属性があり、データが何レコードあるかを確認できます。使い方は以下の通りです。

     var storage = null;
         if(window.localStorage){              //判断浏览器是否支持localStorage
            storage = window.localStorage;     
            storage.setItem("name", "Rick");    //调用setItem方法,存储数据
            alert(storage.getItem("name"));     //调用getItem方法,弹框显示 name 为 Rick
            storage.removeItem("name");     //调用removeItem方法,移除数据
            alert(storage.getItem("name"));   //调用getItem方法,弹框显示 name 为 null
 
         }

localStorage は sessionStorage よりもシンプルで、注意する点はそれほど多くありません。

3. sessionStorage

sessionStorage のライフサイクルはブラウザが閉じる前です。つまり、ブラウザ全体が閉じられるまで、データは常に存在します。 sessionStorage にも length 属性があり、基本的な判断や使い方は localStorage と同様です。以下の点に注意してください:

ページを更新してもデータは消去されません

検証のために、index.html と text.html の 2 つの HTML ファイルを用意しました。 text.html については、その起源については後で詳しく説明します。 2 つの HTML コードは次のとおりです:

index.html

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Test</title>
        <script>
            function submit() {
                var str = document.getElementById("text").value.trim();
                setInfo(str);
                document.getElementById("text").value = "";
            }
            //储存数据
            function setInfo(name) {
                var storage = window.sessionStorage;
                storage.setItem(&#39;name&#39;, name);
            }
            //显示数据
            function shows() {
               var storage = window.sessionStorage;
               var str = "your name is " + storage.getItem("name");
               document.getElementById("text").value = str;
            }
         </script>
    </head>
    <body>
         <input type="button" value="Login" οnclick="submit()" />
         <input type="text" name="text" id="text" />
         <input type="button" value="show" οnclick="shows()" />
         <a href="text.html" target="_blank">点击打开</a>
    </body>
    </html>

text.html ページは次のとおりです:

     <!DOCTYPE html>
     <html>
     <head>
         <meta charset="UTF-8">
         <title>Title</title>
     </head>
     <body>
         <script>
             var storage = window.sessionStorage;
             alert(storage.getItem("name"));
         </script>
     </body>
     </html>

index.html ページを開いた結果は次のとおりです:

sessionStorage と localStorage の違いは何ですか

When表示ボタンをクリックすると、入力ボックスに「あなたの名前はnullです」と表示されます。この時点では、sessionStorageにはキー値「name」を持つデータは格納されていません。テキストに「Rick」と入力し、ログインボタンをクリックすると、入力ボックスがクリアされ、データが sessionStorage に保存されます。その後、表示ボタンをクリックすると、「あなたの名前は Rick」と表示されます。この時点で、ブラウザをクリックして Web ページを更新し、[表示] ボタンをクリックすると、入力ボックスにはまだ「あなたの名前は Rick です」と表示されます

現在のページで開かれているリンクのみがセッション ストレージ データにアクセスできます。

準備された text.html ページを覚えていますか? 次に、その役割を果たす番です。確認するために、上記の手順に従って text.html を開くと、結果は次のようになります。

sessionStorage と localStorage の違いは何ですか

この値は null であり、「name」の値を取得できないことがわかります。ここで、text.html ページを閉じ、index.html ページをクリックしてリンクを開きます。次の結果が表示されます:

sessionStorage と localStorage の違いは何ですか

したがって、現在のページで開かれたリンクが sessionStorage データにアクセスできることがわかります。内で。その後、他のいくつかのテストを行った結果、index.html から text.html ページを開いて、index.html を閉じ、text.html を更新すると、sessionStorage 内のデータにもアクセスできることがわかりました。 sessionStorage 内のデータは、index.html とそこから開いたすべてのページを閉じるか、ブラウザを直接閉じる場合にのみ削除できます。

window.open を使用してページを開き、localtion.href メソッドを変更すると、sessionStorage 内のデータを取得できます

上記の 2 つのメソッドはテストされており、実際にそのとおりです。興味のある学生は実際に結果をテストできます。 localStorage と sessionStorage の違いについては要約しません。

つまり、使用するときは上記の点に注意することで、使用時に多くの不必要な落とし穴を回避できます。

関連知識の詳細については、PHP 中国語 Web サイト をご覧ください。 !

以上がsessionStorage と localStorage の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。