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
|
---
title: Window.sessionStorage
slug: Web/API/Window/sessionStorage
translation_of: Web/API/Window/sessionStorage
---
<p>{{APIRef()}}</p>
<p>La proprietà <strong><code>sessionStorage</code> </strong>permette di accedere all'oggetto di sessione {{domxref("Storage")}}. <code>sessionStorage</code> è simile a {{domxref("Window.localStorage")}}, l'unica differenza è che mentre i dati salvati in <code>localStorage</code> non hanno scadenza, i dati in <code>sessionStorage</code> vengono ripuliti ogniqualvolta la sessione della pagina termina. La sessione della pagina dura fino a quando il browser è aperto e sopravvive alla ricarica della pagina e al ripristino. <strong>L'apertura di una pagina in un nuovo tab o in una nuova finestra implica l'apertura di una nuova sessione, il che differisce da come funzionano i cookie di sessione.</strong></p>
<p>Va ricordato che i dati memorizzati nel <code>sessionStorage</code> o <code>localStorage</code> <strong>sono specifici per il protocollo della pagina</strong>.</p>
<pre class="brush: js">// Salva i dati nel sessionStorage
sessionStorage.setItem('key', 'value');
// Recupare i dati dal sessionStorage
var data = sessionStorage.getItem('key');</pre>
<h3 id="Value">Value</h3>
<p>Un oggetto {{domxref("Storage")}}.</p>
<h2 id="Example">Example</h2>
<p>Il seguente esempio accede all'oggetto di sessione corrente {{domxref("Storage")}} e vi aggiunge un elemento tramite {{domxref("Storage.setItem()")}}.</p>
<pre class="brush: js">sessionStorage.setItem('myCat', 'Tom');</pre>
<p>Il seguente esempio salva automaticamente il contenuto di un campo di testo e se la pagina del browser viene ricaricata, ripristina il contenuto del campo di testo in modo da non perdere nessuna digitazione.</p>
<pre class="brush: js">// Ottiene il campo di testo
var field = document.getElementById("field");
// Verifica se ha un valore di salvataggio automatico (autosave)
// (succederò solo se la pagina viene ricaricata accidentalmente)
if (sessionStorage.getItem("autosave")) {
// Ripristina il contenuto del campo di testo
field.value = sessionStorage.getItem("autosave");
}
// Rimane in ascolto di cambiamenti sul campo di testo
field.addEventListener("change", function() {
// E salva i risultati nell'oggetto sessionStorage
sessionStorage.setItem("autosave", field.value);
});</pre>
<p> </p>
<div class="note">
<p><strong>Nota</strong>: Fare riferimento a <a href="/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API">Using the Web Storage API</a> per un esempio completo.</p>
</div>
<h2 id="Specifiche">Specifiche</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specifica</th>
<th scope="col">Stato</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('Web Storage', '#the-sessionstorage-attribute', 'sessionStorage')}}</td>
<td>{{Spec2('Web Storage')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Compatibilità_dei_browser">Compatibilità dei browser</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</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>3.5</td>
<td>8</td>
<td>10.50</td>
<td>4</td>
</tr>
<tr>
<td>sessionStorage</td>
<td>5</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>Feature</th>
<th>Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Phone</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Supporto Base</td>
<td>2.1</td>
<td>{{ CompatUnknown }}</td>
<td>8</td>
<td>11</td>
<td>iOS 3.2</td>
</tr>
</tbody>
</table>
</div>
<p>Ogni browser ha un livello di supporto differente per localStorage e sessionStorage. </p>
<div class="note">
<p><strong>Nota: </strong>da iOS 5.1, Safari Mobile salva i dati del localStorage nella directory cache, che è soggetta a pulizie occasinonali, tipicamente quando lo c'è poco spazio disponibile.</p>
</div>
<h2 id="Vedere_anche">Vedere anche</h2>
<ul>
<li><a href="/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API">Using the Web Storage API</a></li>
<li>{{domxref("Window.localStorage")}}</li>
</ul>
|