aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/window/sessionstorage/index.html
blob: 426a8e6f18e30c655b77cb48b0fa0d766f43f90b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
---
title: Window.sessionStorage
slug: Web/API/Window/sessionStorage
tags:
  - API
  - Property
  - Reference
  - Storage
  - WindowSessionStorage
  - sessionStorage
translation_of: Web/API/Window/sessionStorage
---
<p>{{APIRef}}</p>

<p><code>sessionStorage</code> プロパティで、 session {{domxref("Storage")}} オブジェクトにアクセスできます。sessionStorage は {{domxref("Window.localStorage")}} に似ています。唯一の違いは、localStorage に保存されたデータに期限がないのに対して、sessionStorage に保存されたデータはページのセッションが終了するときに消去されます。ページのセッションはブラウザを開いている限り、ページの再読み込みや復元を越えて持続します。<strong>新しいタブやウィンドウにページを開くと、新しいセッションが開始します。</strong>これは、セッション Cookie の動作とは異なります。</p>

<p>注意すべき点として、sessionStorage や localStorage <strong>はページのプロトコルに限定されます。</strong></p>

<h2 id="Syntax" name="Syntax">構文</h2>

<pre class="brush: js">// sessionStorage にデータを保存する
sessionStorage.setItem('key', 'value');

// sessionStorage に保存したデータを取得する
var data = sessionStorage.getItem('key');

// sessionStorage に保存したデータを削除する
sessionStorage.removeItem('key')
</pre>

<h3 id="Value" name="Value"></h3>

<p>{{domxref("Storage")}} オブジェクト。</p>

<h2 id="Example" name="Example"></h2>

<p>以下のスニペットは、現在のドメインのセッション {{domxref("Storage")}} オブジェクトにアクセスして、{{domxref("Storage.setItem()")}} を使用してデータアイテムを追加します。</p>

<pre class="brush: js">sessionStorage.setItem('myCat', 'Tom');</pre>

<p>以下の例はテキストフィールドの内容を自動的に保存して、ブラウザが意図せず再開されたときに、記入した内容を失わないようにテキストフィールドの内容を復元します。</p>

<pre class="brush: js">// 追跡するテキストフィールドを取得する
var field = document.getElementById("field");

// 自動保存された値があるかを確認する
// (これはページが意図せず再開された場合にのみ存在する)
if (sessionStorage.getItem("autosave")) {
  // テキストフィールドの内容を復元する
  field.value = sessionStorage.getItem("autosave");
}

// テキストフィールドの変更をリッスンする
field.addEventListener("change", function() {
  // セッションストレージオブジェクトに結果を保存する
  sessionStorage.setItem("autosave", field.value);
});</pre>

<div class="note">
<p><strong>注記</strong>: 詳細な使用例は <a href="/ja/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API">Web Storage API を使用する</a> の記事を参照してください。</p>
</div>

<h2 id="Specifications" name="Specifications">仕様</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">仕様書</th>
   <th scope="col">策定状況</th>
   <th scope="col">コメント</th>
  </tr>
  <tr>
   <td>{{SpecName('Web Storage', '#the-sessionstorage-attribute', 'sessionStorage')}}</td>
   <td>{{Spec2('Web Storage')}}</td>
   <td> </td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2>

<div>{{CompatibilityTable}}</div>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>機能</th>
   <th>Chrome</th>
   <th>Edge</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari (WebKit)</th>
  </tr>
  <tr>
   <td>localStorage</td>
   <td>4</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>3.5</td>
   <td>8</td>
   <td>10.50</td>
   <td>4</td>
  </tr>
  <tr>
   <td>sessionStorage</td>
   <td>5</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>2</td>
   <td>8</td>
   <td>10.50</td>
   <td>4</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>機能</th>
   <th>Android</th>
   <th>Edge</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Phone</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>基本サポート</td>
   <td>2.1</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatUnknown}}</td>
   <td>8</td>
   <td>11</td>
   <td>iOS 3.2</td>
  </tr>
 </tbody>
</table>
</div>

<p>すべてのブラウザで、localStorage および sessionStorage が受け入れる容量は異なります。<a href="http://dev-test.nemikor.com/web-storage/support-test/" title="http://dev-test.nemikor.com/web-storage/support-test/">さまざまなブラウザのストレージ容量を報告しているページ</a>があります。</p>

<div class="note">
<p><strong>注記</strong>: iOS 5.1 より Safari Mobile は localStorage データを cache フォルダに保存しており、概して空き容量が少ない場合に OS の要求により、時々クリーンアップを受けます。</p>
</div>

<h2 id="See_also" name="See_also">関連情報</h2>

<ul>
 <li><a href="/ja/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API">Web Storage API を使用する</a></li>
 <li>{{domxref("Window.localStorage")}}</li>
</ul>