TECH I.S.

HTMLWebストレージAPI


HTMLWebストレージ。クッキーよりも優れています。


HTMLWebストレージとは

Webストレージを使用すると、Webアプリケーションはデータをユーザーのブラウザー内にローカルに保存できます。

HTML5より前は、アプリケーションデータはすべてのサーバーリクエストに含まれるCookieに保存する必要がありました。Webストレージはより安全で、Webサイトのパフォーマンスに影響を与えることなく、大量のデータをローカルに保存できます。

Cookieとは異なり、ストレージの制限ははるかに大きく(少なくとも5MB)、情報がサーバーに転送されることはありません。

Webストレージはオリジンごと(ドメインおよびプロトコルごと)です。1つのオリジンからのすべてのページは、同じデータを保存してアクセスできます。


ブラウザのサポート

表の数字は、WebStorageを完全にサポートする最初のブラウザバージョンを示しています。


API

ウェブストレージ 4.0 8.0 3.5 4.0 11.5

HTMLWebストレージオブジェクト

HTMLWebストレージは、クライアントにデータを保存するための2つのオブジェクトを提供します。

  • window.localStorage-有効期限なしでデータを保存
  • window.sessionStorage-1セッション分のデータを保存します(ブラウザのタブを閉じるとデータは失われます)

Webストレージを使用する前に、localStorageとsessionStorageに対するブラウザのサポートを確認してください。

if (typeof(Storage) !== "undefined") {   // <i>Code for localStorage/sessionStorage.</i> } else {   // Sorry! No Web Storage support.. }

localStorageオブジェクト

localStorageオブジェクトは、有効期限なしでデータを保存します。ブラウザーを閉じてもデータは削除されず、翌日、翌週、または翌年に利用可能になります。

// Store localStorage.setItem("ラストネーム", "スミス"); // Retrieve document.getElementById("result").innerHTML = localStorage.getItem("lastname");

例の説明

  • name="lastname"とvalue="Smith"でlocalStorageの名前と値のペアを作成します
  • 「lastname」の値を取得し、id="result"の要素に挿入します

上記の例は、次のように書くこともできます。

// Store localStorage.lastname = "Smith"; // Retrieve document.getElementById("result").innerHTML = localStorage.lastname;

"lastname" localStorage 項目を削除するための構文は次のとおりです。

localStorage.removeItem("lastname");

注:名前と値のペアは、常に文字列として格納されます。必要に応じて、別の形式に変換することを忘れないでください。

次の例では、ユーザーがボタンをクリックした回数をカウントします。このコードでは、値の文字列が数値に変換され、カウンターを増やすことができます。

if (localStorage.clickcount) {   localStorage.clickcount = Number(localStorage.clickcount) + 1; } else {   localStorage.clickcount = 1; } document.getElementById("result").innerHTML = "You have clicked the button " + localStorage.clickcount + " time(s).";


sessionStorageオブジェクト

sessionStorageオブジェクトは、1つのセッションのみのデータを保存することを除けば、localStorageオブジェクトと同じです。ユーザーが特定のブラウザタブを閉じると、データは削除されます。

次の例では、現在のセッションでユーザーがボタンをクリックした回数をカウントします。

if (sessionStorage.clickcount) {   sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1; }else {   sessionStorage.clickcount = 1; } document.getElementById("result").innerHTML = "ボタンをクリックしました" + sessionStorage.clickcount + " time(s) in this session.";



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細