Ðеб Ñ ÑанилиÑе (API)
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
Web Storage API пÑедоÑÑавлÑÐµÑ Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ñ, пÑи помоÑи коÑоÑÑÑ Ð±ÑаÑзеÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°Ñно Ñ ÑаниÑÑ Ð¿Ð°ÑÑ ÐºÐ»ÑÑ/знаÑение в более инÑÑиÑивно понÑÑной манеÑе, Ñем кÑки (cookies).
ÐÑÐ½Ð¾Ð²Ñ Ðеб Ñ ÑанилиÑа и его иÑполÑзование
РоÑнове Ðеб Ñ ÑанилиÑа Ð»ÐµÐ¶Ð°Ñ Ð´Ð²Ð° Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð°:
Ñ ÑанилиÑе ÑеÑÑии (sessionStorage)обÑлÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ домена, доÑÑÑпное на пÑоÑÑжении ÑеÑÑии. (пока бÑаÑÐ·ÐµÑ Ð¾ÑкÑÑÑ, даже в ÑлÑÑае пеÑезагÑÑзки ÑÑÑаниÑÑ)локалÑное Ñ ÑанилиÑе (localStorage)Ð´ÐµÐ»Ð°ÐµÑ Ñо же Ñамое, но ÑÐ¾Ñ ÑанÑÐµÑ Ð´Ð°Ð½Ð½Ñе даже в ÑлÑÑае, еÑли пеÑеоÑкÑÑÑÑ Ð±ÑаÑзеÑ.
Ðбе ÑÑнкÑии доÑÑÑÐ¿Ð½Ñ ÑеÑез Window.sessionStorage и Window.localStorage ÑвойÑÑва (еÑли бÑÑÑ Ð±Ð¾Ð»ÐµÐµ ÑоÑнÑм, в бÑаÑзеÑаÑ
, поддеÑживаÑÑиÑ
Ñ
ÑанилиÑа обÑÐµÐºÑ Window вÑполнÑÐµÑ Ð¾Ð±ÑекÑÑ WindowLocalStorage и WindowSessionStorage, коÑоÑÑе ÑодеÑÐ¶Ð°Ñ ÑвойÑÑва localStorage и sessionStorage) â вÑзов одного из ниÑ
ÑоздаÑÑ Ð¿ÑедÑÑавление обÑекÑа Storage, ÑеÑез коÑоÑÑй можно ÑÑÑанавливаÑÑ, ÑедакÑиÑоваÑÑ Ð¸ ÑдалÑÑÑ Ð´Ð°Ð½Ð½Ñе. ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из Ñипа Ñ
ÑÐ°Ð½Ð¸Ð»Ð¸Ñ Ð¸ по ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð´Ð¾Ð¼ÐµÐ½Ñ Ð¸ÑполÑзÑеÑÑÑ Ð¾ÑделÑное пÑедÑÑавление Storage обÑекÑа - они ÑÑнкÑиониÑÑÑÑ Ð¸ ÑпÑавлÑÑÑÑÑ Ð¾ÑделÑно дÑÑг Ð¾Ñ Ð´ÑÑга.
ÐÑимеÑание: ÐаÑÐ¸Ð½Ð°Ñ Ñ Ð²ÐµÑÑии 45 Firefox, когда бÑаÑÐ·ÐµÑ Ð¿ÑекÑаÑÐ°ÐµÑ ÑабоÑÑ/пеÑезагÑÑжаеÑÑÑ, обÑем даннÑÑ , ÑÐ¾Ñ ÑанÑннÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ иÑÑоÑника, огÑаниÑиваеÑÑÑ 10 ÐÐ. ÐÑо бÑло Ñделано, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð¿Ñоблем Ñ Ð¿Ð°Ð¼ÑÑÑÑ, вÑзваннÑÑ ÑÑезмеÑнÑм иÑполÑзованием веб-Ñ ÑанилиÑа.
ÐÑимеÑание: ÐоÑÑÑп к веб Ñ ÑанилиÑÑ Ð¸Ð· iFrame ÑÑеÑÑей ÑÑоÑÐ¾Ð½Ñ Ð·Ð°Ð¿ÑеÑÑн, еÑли полÑзоваÑÐµÐ»Ñ Ð¾ÑклÑÑил cookies ÑÑеÑÑÐ¸Ñ ÑÑоÑон (Firefox ведÑÑ ÑÐµÐ±Ñ Ñак Ñ Ð²ÐµÑÑии 43).
ÐÑимеÑание: Web Storage ÑÑо не Ñоже Ñамое, ÑÑо mozStorage (Mozilla's XPCOM инÑеÑÑейÑÑ Ð´Ð»Ñ SQLite) или Session store API (XPCOM ÑÑилиÑа Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑаÑÑиÑений).
ÐнÑеÑÑейÑÑ Ðеб Ñ ÑанилиÑа
Storage-
ÐозволÑÐµÑ Ð¿ÑиÑваиваÑÑ, извлекаÑÑ (ÑиÑаÑÑ) и ÑдалÑÑÑ Ð´Ð°Ð½Ð½Ñе Ð´Ð»Ñ ÑпеÑиÑиÑеÑкого домена и Ñипа Ñ ÑанилиÑа (ÑеÑÑии или локалÑного).
Window-
Web Storage API ÑаÑÑиÑÑеÑ
WindowобÑекÑ, добавлÑÑ Ðº Ð½ÐµÐ¼Ñ Ð´Ð²Ð° новÑÑ ÑвойÑÑва âWindow.sessionStorageиWindow.localStorageâ коÑоÑÑе пÑедоÑÑавлÑÑÑ Ð´Ð¾ÑÑÑп к ÑеÑÑии ÑекÑÑего домена и к ÑооÑвеÑÑÑвÑÑÑим локалÑнÑмStorageобÑекÑам, иWindow.onstorageобÑабоÑÑик ÑобÑÑий, коÑоÑÑй ÑÑабаÑÑÐ²Ð°ÐµÑ Ð¿Ñи изменении обÑекÑа Ñ ÑанилиÑа (напÑимеÑ, пÑи ÑÐ¾Ñ Ñанении нового ÑлеменÑа) StorageEvent-
СобÑÑие
storageÑÑабаÑÑÐ²Ð°ÐµÑ Ð½Ð° обÑекÑе докÑменÑа Window пÑи изменении обÑекÑа Ñ ÑанилиÑа.
ÐÑимеÑÑ
ЧÑÐ¾Ð±Ñ Ð¿ÑоиллÑÑÑÑиÑоваÑÑ ÑипиÑное иÑполÑзование веб Ñ ÑанилиÑа, Ð¼Ñ Ñоздали пÑоÑÑейÑий пÑÐ¸Ð¼ÐµÑ Ð¸ назвали его Web Storage Demo. Ðа лендинге наÑего пÑимеÑа Ð²Ñ Ð½Ð°Ð¹Ð´ÑÑе ÑлеменÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñонового ÑвеÑа, ÑÑиÑÑа и изобÑажениÑ. Ðогда Ð²Ñ Ð²ÑбиÑаеÑе ÑазнÑе опÑии, ÑÑÑаниÑа мгновенно менÑеÑÑÑ. Рдополнение, Ð²Ð°Ñ Ð²ÑÐ±Ð¾Ñ ÑÐ¾Ñ ÑанÑеÑÑÑ Ð² локалÑном Ñ ÑанилиÑе, ÑÑобÑ, еÑли Ð²Ñ Ð¿Ð¾ÐºÐ¸Ð½ÐµÑе ÑÑÑаниÑÑ Ð¸ поÑом загÑÑзиÑе ÐµÑ Ñнова, ваÑи наÑÑÑойки воÑÑÑановилиÑÑ.
Также, Ð¼Ñ Ñделали ÑÑÑаниÑÑ Ð²Ñвода ÑобÑÑий, коÑоÑÐ°Ñ Ð²ÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ Ñ
ÑанилиÑе, каждÑй Ñаз когда ÑÑабаÑÑÐ²Ð°ÐµÑ ÑобÑÑие StorageEvent. ÐагÑÑзиÑе ÑÑÑ ÑÑÑаниÑÑ Ð² дÑÑгой вкладке бÑаÑзеÑа, заÑем веÑниÑеÑÑ Ð½Ð° лендинг и поменÑйÑе знаÑÐµÐ½Ð¸Ñ ÑвеÑа, ÑÑиÑÑа или изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸ понаблÑдайÑе, как менÑеÑÑÑ Ð²ÑÐ²Ð¾Ð´Ð¸Ð¼Ð°Ñ Ð¸Ð½ÑоÑмаÑиÑ.
СпеÑиÑикаÑии
| Specification |
|---|
| HTML Living Standard # webstorage |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
>api.Window.localStorage
api.Window.sessionStorage
ÐÑиваÑнÑй Ñежим/ÐнкогниÑо
Ðногие бÑаÑзеÑÑ Ð² наÑи дни поддеÑживаÑÑ Ð¾Ð¿Ñии пÑиваÑноÑÑи, названнÑе "ÐнкогниÑо" или "ÐÑиваÑнÑй пÑоÑмоÑÑ" и Ñ.п., ÑÑо позволÑÐµÑ Ð±ÑÑÑ ÑвеÑеннÑми, ÑÑо Ñледов пÑиваÑной ÑеÑÑии не оÑÑаÑÑÑÑ Ð¿Ð¾Ñле закÑÑÑÐ¸Ñ Ð±ÑаÑзеÑа. ÐÑо ÑÑндаменÑалÑÐ½Ð°Ñ Ð½ÐµÑовмеÑÑимоÑÑÑ Ñ Ðеб Ñ ÑанилиÑем по оÑевиднÑм пÑиÑинам. Таким обÑазом, пÑоизводиÑели бÑаÑзеÑов ÑкÑпеÑименÑиÑÑÑÑ Ñ ÑазлиÑнÑми ÑÑенаÑиÑми, как ÑпÑавиÑÑÑÑ Ñ ÑÑой неÑовмеÑÑимоÑÑÑÑ.
Ðногие бÑаÑзеÑÑ Ð²ÑбÑали ÑÑÑаÑегиÑ, когда API Ñ ÑанилиÑа доÑÑÑпно и кажеÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÑÑнкÑионалÑнÑм, Ñ Ð¾Ð´Ð½Ð¸Ð¼ болÑÑим оÑлиÑием - вÑе даннÑе Ñ ÑанилиÑа ÑÑиÑаÑÑÑÑ Ð¿Ð¾Ñле закÑÑÑÐ¸Ñ Ð±ÑаÑзеÑа. ÐÐ»Ñ ÑÑÐ¸Ñ Ð±ÑаÑзеÑов еÑÑÑ ÐµÑÑ Ð´ÑÑгие инÑеÑпÑеÑаÑии Ñого, ÑÑо ÑледÑÐµÑ Ð´ÐµÐ»Ð°ÑÑ Ñ Ñ ÑанимÑми даннÑми (Ð¾Ñ Ð¾Ð±ÑÑного Ñежима бÑаÑзеÑа). СледÑÐµÑ Ð»Ð¸ им бÑÑÑ Ð´Ð¾ÑÑÑпнÑми в пÑиваÑном Ñежиме? ÐаÑем, еÑÑÑ Ð½ÐµÑколÑко бÑаÑзеÑов, оÑобенно Safari, коÑоÑÑе вÑбÑали ÑеÑение, в коÑоÑом Ñ ÑанилиÑе доÑÑÑпно, но пÑÑÑое и Ð¸Ð¼ÐµÐµÑ ÐºÐ²Ð¾ÑÑ 0 байÑ, ÑакÑиÑеÑки, Ð´ÐµÐ»Ð°Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ð¹ запиÑÑ ÑÑда даннÑÑ .
РазÑабоÑÑики Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¾ÑÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ñ Ð¾Ð± ÑÑÐ¸Ñ ÑазлиÑнÑÑ ÑеализаÑиÑÑ Ð¸ пÑинимаÑÑ Ð¸Ñ Ð²Ð¾ внимание пÑи ÑазÑабоÑке веб-ÑайÑов, завиÑÑÑÐ¸Ñ Ð¾Ñ API Ðеб Ñ ÑанилиÑа. ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подÑобной инÑоÑмаÑии, пожалÑйÑÑа, поÑмоÑÑиÑе на ÑÑÐ¾Ñ Ð¿Ð¾ÑÑ Ð±Ð»Ð¾Ð³Ð° WHATWG, ÑпеÑиалÑно поÑвÑÑÑннÑй ÑÑой Ñеме.