Szukaj…


Składnia

  • localStorage.setItem (nazwa, wartość);

  • localStorage.getItem (name);

  • localStorage.name = wartość;

  • localStorage.name;

  • localStorage.clear ()

  • localStorage.removeItem (name);

Parametry

Parametr Opis
Nazwa Klucz / nazwa przedmiotu
wartość Wartość przedmiotu

Uwagi

Interfejs API Web Storage jest określony w WHATWG HTML Living Standard .

Korzystanie z localStorage

Obiekt localStorage zapewnia trwałe (ale nie trwałe - patrz ograniczenia poniżej) ciągi wartości klucza. Wszelkie zmiany są natychmiast widoczne we wszystkich innych oknach / ramkach tego samego pochodzenia. Zapamiętane wartości są trwałe przez czas nieokreślony, chyba że użytkownik wyczyści zapisane dane lub skonfiguruje limit ważności. localStorage używa interfejsu podobnego do mapy do pobierania i ustawiania wartości.

localStorage.setItem('name', "John Smith");
console.log(localStorage.getItem('name')); // "John Smith"

localStorage.removeItem('name');
console.log(localStorage.getItem('name')); // null

Jeśli chcesz przechowywać proste dane strukturalne, możesz użyć JSON do szeregowania ich do i z ciągów do przechowywania.

var players = [{name: "Tyler", score: 22}, {name: "Ryan", score: 41}];
localStorage.setItem('players', JSON.stringify(players));

console.log(JSON.parse(localStorage.getItem('players')));
// [ Object { name: "Tyler", score: 22 }, Object { name: "Ryan", score: 41 } ]

limity localStorage w przeglądarkach

Przeglądarki mobilne:

Przeglądarka Google Chrome Przeglądarka Android Firefox iOS Safari
Wersja 40 4.3 34 6-8
Przestrzeń dostępna 10 MB 2 MB 10 MB 5 MB

Przeglądarki stacjonarne:

Przeglądarka Google Chrome Opera Firefox Safari Internet Explorer
Wersja 40 27 34 6-8 9–11
Przestrzeń dostępna 10 MB 10 MB 10 MB 5 MB 10 MB

Wydarzenia pamięciowe

Ilekroć wartość ustawiona w localStorage, zdarzenie storage będzie wywoływane we wszystkich innych windows tego samego źródła. Można to wykorzystać do synchronizacji stanu między różnymi stronami bez ponownego ładowania lub komunikacji z serwerem. Na przykład możemy odzwierciedlić wartość elementu wejściowego jako tekst akapitu w innym oknie:

Pierwsze okno
var input = document.createElement('input');
document.body.appendChild(input);

input.value = localStorage.getItem('user-value');

input.oninput = function(event) {
  localStorage.setItem('user-value', input.value);
};
Drugie okno
var output = document.createElement('p');
document.body.appendChild(output);

output.textContent = localStorage.getItem('user-value');

window.addEventListener('storage', function(event) {
  if (event.key === 'user-value') {
    output.textContent = event.newValue;
  }
});

Notatki

Zdarzenie nie jest uruchamiane ani wychwytywane w Chrome, Edge i Safari, jeśli domena została zmodyfikowana za pomocą skryptu.

Pierwsze okno
// page url: http://sub.a.com/1.html
document.domain = 'a.com';

var input = document.createElement('input');
document.body.appendChild(input);

input.value = localStorage.getItem('user-value');

input.oninput = function(event) {
  localStorage.setItem('user-value', input.value);
};
Drugie okno
// page url: http://sub.a.com/2.html
document.domain = 'a.com';

var output = document.createElement('p');
document.body.appendChild(output);

// Listener will never called under Chrome(53), Edge and Safari(10.0).
window.addEventListener('storage', function(event) {
  if (event.key === 'user-value') {
    output.textContent = event.newValue;
  }
});

sessionStorage

Obiekt sessionStorage implementuje ten sam interfejs Storage co localStorage. Jednak zamiast udostępniać wszystkim stronom tego samego pochodzenia, dane sessionStorage są przechowywane osobno dla każdego okna / karty. Przechowywane dane są przechowywane między stronami w tym oknie / karcie tak długo, jak długo są otwarte, ale nie są widoczne nigdzie indziej.

var audio = document.querySelector('audio');

// Maintain the volume if the user clicks a link then navigates back here.
audio.volume = Number(sessionStorage.getItem('volume') || 1.0);
audio.onvolumechange = function(event) {
  sessionStorage.setItem('volume', audio.volume);
};

Zapisz dane do sessionStorage

sessionStorage.setItem('key', 'value');

Uzyskaj zapisane dane z sessionStorage

var data = sessionStorage.getItem('key');

Usuń zapisane dane z sessionStorage

sessionStorage.removeItem('key')

Czyszczenie magazynu

Aby wyczyścić pamięć, po prostu uruchom

localStorage.clear();

Warunki błędu

Większość przeglądarek skonfigurowanych do blokowania plików cookie blokuje również localStorage . Próby jego użycia spowodują wyjątek. Nie zapomnij zarządzać tymi sprawami .

var video = document.querySelector('video')
try {
    video.volume = localStorage.getItem('volume')
} catch (error) {
    alert('If you\'d like your volume saved, turn on cookies')
}
video.play()

Jeśli błąd nie zostanie obsłużony, program przestanie działać poprawnie.

Usuń element pamięci

Aby usunąć określony element z pamięci przeglądarki (odwrotnie niż setItem ), użyj removeItem

localStorage.removeItem("greet");

Przykład:

localStorage.setItem("greet", "hi");
localStorage.removeItem("greet");

console.log( localStorage.getItem("greet") ); // null

(To samo dotyczy sessionStorage )

Prostszy sposób obsługi Przechowywanie

localStorage , sessionStorageobiektami JavaScript i można je traktować jako takie.
Zamiast używać metod przechowywania, takich jak .getItem() , .setItem() itp. .setItem() , Oto prostsza alternatywa:

// Set
localStorage.greet = "Hi!"; // Same as: window.localStorage.setItem("greet", "Hi!");

// Get
localStorage.greet;         // Same as: window.localStorage.getItem("greet");

// Remove item
delete localStorage.greet;  // Same as: window.localStorage.removeItem("greet");

// Clear storage
localStorage.clear();

Przykład:

// Store values (Strings, Numbers)
localStorage.hello = "Hello";
localStorage.year  = 2017;    

// Store complex data (Objects, Arrays)
var user = {name:"John", surname:"Doe", books:["A","B"]};
localStorage.user = JSON.stringify( user );

// Important: Numbers are stored as String
console.log( typeof localStorage.year ); // String

// Retrieve values
var someYear = localStorage.year; // "2017"

// Retrieve complex data
var userData = JSON.parse( localStorage.user );
var userName = userData.name; // "John"

// Remove specific data
delete localStorage.year; 

// Clear (delete) all stored data
localStorage.clear();

localStorage length

Właściwość localStorage.length zwraca liczbę całkowitą wskazującą liczbę elementów w localStorage

Przykład:

Ustaw przedmioty

localStorage.setItem('StackOverflow', 'Documentation');
localStorage.setItem('font', 'Helvetica');
localStorage.setItem('image', 'sprite.svg');

Uzyskaj długość

localStorage.length; // 3


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow