aboutsummaryrefslogtreecommitdiff
path: root/files/it/web/api/storage/index.html
blob: ab30b1de2127a5fba6ccd389f3f884da60aeac76 (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
155
156
157
158
159
160
161
---
title: Storage
slug: Web/API/Storage
tags:
  - API
  - Dati
  - Interfaccia
  - Riferimento
  - Storage
  - Web Storage
translation_of: Web/API/Storage
---
<p>{{APIRef("Web Storage API")}}</p>

<p>L'interfaccia <code>Storage</code> dell'API Web Storage fornisce accesso allo storage di sessione o allo storage locale per un dato dominio, permettendo, ad esempio, l'aggiunta, modifica o rimozione di dati salvati.</p>

<p>Se si vuole manipolare lo storage di sessione per un dominio, va invocato il metodo {{domxref("Window.sessionStorage")}}; se si vuole manipolare lo storage locale per un dominio, va invocato {{domxref("Window.localStorage")}}.</p>

<h2 id="Proprietà">Proprietà</h2>

<dl>
 <dt>{{domxref("Storage.length")}} {{readonlyInline}}</dt>
 <dd>Ritorna un intero che rappresenta il numero di oggetti presenti in un oggetto <code>Storage</code>.</dd>
</dl>

<h2 id="Metodi">Metodi</h2>

<dl>
 <dt>{{domxref("Storage.key()")}}</dt>
 <dd>Dato un numero n,  ritorna il nome dell'n-esima chiave nello storage.</dd>
</dl>

<dl>
 <dt>{{domxref("Storage.getItem()")}}</dt>
 <dd>Dato un nome di chiave, ritorna il corrispondente valore.</dd>
 <dt>{{domxref("Storage.setItem()")}}</dt>
 <dd>Dati un nome di chiave e un valore, aggiunge questa chiave allo storage, o aggiorna il valore della chiave se essa esiste già.</dd>
 <dt>{{domxref("Storage.removeItem()")}}</dt>
 <dd>Dato un nome di chiave, rimuove quella chiave dallo storage.</dd>
 <dt>{{domxref("Storage.clear()")}}</dt>
 <dd>Rimuove tutte le chiavi dallo storage.</dd>
</dl>

<h2 id="Esempi">Esempi</h2>

<p>Questo è un esempio di accesso all'oggetto <code>Storage</code> tramite chiamata a <code>localStorage</code>. In primo luogo, si verifica se lo storage locale contenga oggetti usando <code>!localStorage.getItem('bgcolor')</code>. Se il test passa, si invoca una funzione <code>setStyles()</code> che recupera gli oggetti tramite {{domxref("localStorage.getItem()")}} e ne usa i valori per aggiornare gli stili della pagina. Se il test fallisce, viene invocata un'altra funzione, <code>populateStorage()</code>, che usa {{domxref("localStorage.setItem()")}} per settare i valori, per poi ritornare <code>setStyles()</code>.</p>

<pre class="brush: js">if(!localStorage.getItem('bgcolor')) {
  populateStorage();
} else {
  setStyles();
}

function populateStorage() {
  localStorage.setItem('bgcolor', document.getElementById('bgcolor').value);
  localStorage.setItem('font', document.getElementById('font').value);
  localStorage.setItem('image', document.getElementById('image').value);

  setStyles();
}

function setStyles() {
  var currentColor = localStorage.getItem('bgcolor');
  var currentFont = localStorage.getItem('font');
  var currentImage = localStorage.getItem('image');

  document.getElementById('bgcolor').value = currentColor;
  document.getElementById('font').value = currentFont;
  document.getElementById('image').value = currentImage;

  htmlElem.style.backgroundColor = '#' + currentColor;
  pElem.style.fontFamily = currentFont;
  imgElem.setAttribute('src', currentImage);
}</pre>

<div class="note">
<p><strong>Nota</strong>: Per vedere quest'esempio girare, si veda la <a href="https://github.com/mdn/web-storage-demo">Web Storage Demo</a>.</p>
</div>

<h2 id="Specifiche">Specifiche</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specifica</th>
   <th scope="col">Status</th>
   <th scope="col">Commento</th>
  </tr>
  <tr>
   <td>{{SpecName('Web Storage', '#the-storage-interface', 'Storage')}}</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>Funzionalità</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>Funzionalità</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 minimo</td>
   <td>2.1</td>
   <td>{{ CompatUnknown }}</td>
   <td>8</td>
   <td>11</td>
   <td>3.2[1]</td>
  </tr>
 </tbody>
</table>
</div>

<p>[1] A partite da iOS 5.1, Safari Mobile salva i dati del <code>localStorage</code> in una cartella di cache, soggetta occasionalmente a pulizia su richiesta del sistema operativo, tipicamente in mancanza di spazio.</p>

<p>I vari browser hanno diversi livelli di capacità sia per localStorage che per sessionStorage. Qui si trova un <a href="http://dev-test.nemikor.com/web-storage/support-test/">resoconto dettagliato delle capacità di immagazzinamento dei vari browser</a>.</p>

<h2 id="Vedere_anche">Vedere anche</h2>

<p><a href="/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API">Usare la API Web Storage</a></p>