Накратко
Двата интерфейса съхраняват стойности в браузъра, но имат различен живот и обхват. Те са удобни за състояние на интерфейса, когато приложението отчита ограниченията им.
Полезно е да знаеш
Уеб страница може да запази предпочитание в браузъра, така че посетителят да не го избира при всяко отваряне. Един от механизмите е localStorage. Данните му са свързани с origin на документа и обичайно се запазват между браузърни сесии, без собствен автоматичен срок на изтичане. [1] Това е удобна основа за избор на изглед или друга местна настройка. Важно е обаче да се разбира какъв вид памет се използва, преди върху нея да се изгради очакване за надеждно съхранение.
SessionStorage е организиран около сесията на конкретния раздел и съответния origin. Презареждането на страницата не прекратява автоматично тази сесия, докато затварянето на раздела или прозореца я приключва. [2] Следователно „сесийно“ не означава непременно „до първото натискане на Refresh“. Разликата има значение за временни данни от интерфейса, които трябва да преживеят едно обновяване на документа, но не се очаква да останат като дълготрайна настройка за следващо независимо посещение на сайта.
LocalStorage съхранява ключове и стойности като низове. HTTP и HTTPS адреси имат отделни пространства за съхранение, а политиките на браузъра могат да забранят запазването. При частно разглеждане поведението също има особености. [1] Това означава, че един и същ визуален сайт не трябва да предполага наличие на старата настройка след промяна на протокола. Приложението трябва да умее да започне с разумна стойност по подразбиране, когато очакваното местно съдържание липсва или достъпът до него бъде отказан.
Отварянето на нов раздел създава отделна странична сесия. При наличие на opener началното sessionStorage може да е копие от отварящия прозорец, но след това промените остават независими. [2] Този детайл обяснява защо простото правило „всеки нов раздел винаги е напълно празен“ е прекалено категорично. По-точно е да се разгледа конкретният начин на отваряне. После може да се провери какво състояние очаква интерфейсът и дали две едновременно отворени страници трябва да влияят една на друга.
Да си представим филтър в каталог. За постоянен предпочитан изглед може да се използва едно решение, а за временна стъпка в текущ раздел — друго. Това е проектен пример, не задължителна рецепта. Първият въпрос е колко дълго трябва да живее стойността. Следват въпросите дали е нужна на друго устройство и дали е достатъчно надеждно тя да стои само в този браузър. Местната настройка не е автоматично равнозначна на записан профил в сървърната база.
При проверка е полезно да се опитат обновяване, нов раздел, затваряне и ново посещение. Така се вижда дали реалното поведение съответства на обещанието в интерфейса. Данните, прочетени от местното хранилище, трябва да се обработват като вход, който може да е липсващ или неочакван. Подходящият избор между двата механизма започва от живота и предназначението на стойността. Познаването на имената е само първата стъпка; по-важно е какво точно приложението обещава да запомни за човека отсреща.
Източници
За повече подробности и проверка на информацията: