Czy obiekt localStorage HTML5 jest izolowany na stronę / domenę? Zastanawiam się, jak nazwałbym klucze localStorage. Czy potrzebuję osobnego prefiksu? Czy mogę nazwać je, jak chcę?
javascript
html
local-storage
Nathan Moos
źródło
źródło
Odpowiedzi:
Jest na domenę i port (te same zasady segregacji, co w przypadku tej samej zasady pochodzenia ), aby ustawić ją na stronę, musisz użyć klucza opartego na
location
lub innym podejściu.Nie potrzebujesz prefiksu, ale użyj go, jeśli go potrzebujesz. Możesz też nadać im dowolne nazwy.
źródło
protocol://host:port
kombinacji.Sklepy są według pochodzenia , gdzie „pochodzenie” oznacza to samo, co w przypadku tej samej zasady pochodzenia (połączenie schematu [
http
vs.https
itd.], Portu i hosta). Ze specyfikacji :Tak więc pamięć masowa dla
http://a.example.com
i pamięć masowahttp://b.example.com
są oddzielne (i są od siebie oddzielnehttp://example.com
), ponieważ są to różne hosty. Podobnie,http://example.com:80
ahttp://example.com:8080
ihttps://example.com
są różne pochodzenie.W pamięci sieciowej nie ma wbudowanego mechanizmu, który umożliwia jednemu źródłu dostęp do pamięci innego.
Należy pamiętać, że jest to początek , a nie URL, tak
http://example.com/page1
ihttp://example.com/page2
obie mają dostęp do przechowywaniahttp://example.com
.źródło
Tak, każda domena / subdomena ma inny LocalStorage i możesz wywoływać klucze, jak chcesz (prefiks nie jest wymagany).
Aby uzyskać klucz, możesz użyć klucza metody (indeksu), takiego jak
Wcześniej istniał obiekt o nazwie globalStorage, w którym można było mieć wiele localStorage, ale został on wycofany ze specyfikacji
źródło
Jak inni zauważyli, localStorage jest unikalna dla każdego protokołu, hosta i portu. Jeśli chcesz wygodnego sposobu kontrolowania pamięci za pomocą kluczy z prefiksami, sugeruję localDataStorage .
Nie tylko pomaga wymusić podzieloną na segmenty pamięć współdzieloną w tej samej domenie poprzez prefiksowanie kluczy, ale także w przejrzysty sposób przechowuje typy danych javascript (Array, Boolean, Date, Float, Integer, String and Object), zapewnia lekkie zaciemnianie danych, automatycznie kompresuje ciągi znaków i ułatwia wyszukiwanie według klucza (nazwy), a także zapytania według wartości (klucza).
[ZRZECZENIE SIĘ] Jestem autorem narzędzia [/ ZRZECZENIE SIĘ]
Przykłady:
Jak widać, prymitywne wartości są przestrzegane i można utworzyć kilka instancji, aby kontrolować pamięć.
źródło
Jest on dostępny w dowolnym miejscu w tej domenie, jak zasugerował Nick, jako alternatywa jest to, że sessionStorage działa nieco inaczej, ponieważ różni się od samego okna przeglądarki. Oznacza to, że inne karty lub okna w tej samej domenie nie mają dostępu do tej samej kopii obiektu pamięci.
źródło