
Habr├й рдкрд░
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА IndexedDB рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдмрд╛рдд рдХреА - рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдмрдбрд╝реЗ рд╕рдВрд░рдЪрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдерд╛ рдФрд░ рдПрдкреАрдЖрдИ рдмрд╣реБрдд рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЦреЛрдЬ рдореЗрдВ рдкрд╣рд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкреЙрдк рдЕрдк рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рдЧреБрдорд░рд╛рд╣ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡рд░реНрддрдорд╛рди рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
IndexedDB рдХреНрдпрд╛ рд╣реИ
IndexedDB рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬреЛ рд╡реЗрдм рд╕рдВрдЧреНрд░рд╣рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХреБрдВрдЬреА / рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдХреЗ рд╡реЗрдм-рдЖрдзрд╛рд░рд┐рдд рд╕рдВрдЧреНрд░рд╣рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА, рдХреБрд╢рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡реЗрдм рд╕реНрдЯреЛрд░реЗрдЬ рдФрд░ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд░рддрд╛ рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдЙрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рдЙрддреНрдкрддреНрддрд┐ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдерд╛ред
IndexedDB рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдПрдХ рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдореВрд▓ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред IndexedDB рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╛рдорд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реНрд╕ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдХреБрдВрдЬреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХреЗ рддрд╣рдд рдЗрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рднрдВрдбрд╛рд░рдг рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдВрдЬреА рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреНрд░рдордмрджреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЕрдиреБрдХреНрд░рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред IndexedDB рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдп рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдХреНрд╕рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдЧреАред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░ рдмрдирд╛рддреЗ рд╕рдордп, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЗ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рднрдВрдбрд╛рд░рдг рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╕реНрддреБ рдХреЗ рдЕрдиреНрдп рдЧреБрдгреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рд╣реИред рдЗрд╕ рдХреНрд╖рдорддрд╛ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╡рд╕реНрддреБ рднрдВрдбрд╛рд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ
рд╕реВрдЪрдХрд╛рдВрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рдорд╛рдзреНрдпрдорд┐рдХ рдХреБрдВрдЬреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдпреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдЧреИрд░-рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рд╣реА рдХреБрдВрдЬреА рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ, рдПрдХ
рдХрд░реНрд╕рд░ рдХрд╛ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдкрд░рд┐рдгрд╛рдо рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
IndexedDB рд╕рдВрдЪрд╛рд▓рди рдХреА рдкрд░рдорд╛рдгреБрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ: рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд▓реЗрдирджреЗрди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдпрд╛ рддреЛ рд╡реЗ рд╕рднреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрднреА рднреА рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд░рд╣реЗрдЧрд╛ред
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
IE> 9, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕> 15 рдФрд░ рдХреНрд░реЛрдо> 23 рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╕рдорд░реНрдерди, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:
var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; var IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:
var request = indexedDB.open("myBase", 1);
рдЦреБрд▓реА рд╡рд┐рдзрд┐ рдПрдХ IDBOpenDBRequest рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рддреАрди рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░реНрд╕ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
- рдЖрддрддрд╛рдпреА ;
- onSuccess;
- onupgradeneeded ред
рдЕрдЧрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ рдФрд░ рдорд╛рдирдХреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА рддреЛ
рдСрдирд░реЛрд░ рдХреЛ
рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рддреЛ
рдЕрд╕рдлрд▓ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЦреБрд▓реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдПрдХ рдЦреБрд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдиреБрд░реЛрдз рд╡рд╕реНрддреБ рд╕реЗ рд╕реБрд▓рдн рд╣реИ:
request.result ред
рдЕрдм рддрдХ, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдорддрднреЗрдж рд╢реБрд░реВ рд╣реЛ рдЧрдП рд╣реИрдВред
рдЦреБрд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реНрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдЖрдк рднрд┐рдиреНрдирд╛рддреНрдордХ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдирд┐рдХрдЯрддрдо рдкреВрд░реЗ рдХреЗ рд▓рд┐рдП рдЧреЛрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХреЛрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╣реАрдВ рд╣реИ, рддреЛ
onupgradeneeded рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХрд╛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдХрд╛рд░реНрдп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
function connectDB(f){ var request = indexedDB.open("myBase", 1); request.onerror = function(err){ console.log(err); }; request.onsuccess = function(){
рдЬрд╣рд╛рдБ f рд╡рд╣ рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛
IndexedDB рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реНрд╕ рдкрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ:
ObjectStore ред ObjectStore рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдЗрд╕рдХрд╛ рдирд╛рдо рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдХреБрдВрдЬреА рдлрд╝реАрд▓реНрдб рдХрд╛ рдирд╛рдо (рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░реЙрдкрд░реНрдЯреА: keyPath) рдФрд░ рдХреБрдВрдЬреА рдХреА рдСрдЯреЛ-рдЬрдирд░реЗрд╢рди (рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдмреВрд▓рд┐рдпрди рд╕рдВрдкрддреНрддрд┐: autoIncrement)ред
рдореБрдЦреНрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, 4 рд╡реНрдпрд╡рд╣рд╛рд░ рд░рдгрдиреАрддрд┐рдпрд╛рдБ рд╣реИрдВ:
- рдХреБрдВрдЬреА рдлрд╝реАрд▓реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХреБрдВрдЬреА рдкреАрдврд╝реА рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ - рдлрд┐рд░ рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдХреБрдВрдЬреА рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛;
- рдХреБрдВрдЬреА рдлрд╝реАрд▓реНрдб рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдСрдЯреЛ-рдкреАрдврд╝реА рдмрдВрдж рд╣реИ - рдХреБрдВрдЬреА рдлрд╝реАрд▓реНрдб рдХреБрдВрдЬреА рд╣реИ;
- рдХреБрдВрдЬреА рдлрд╝реАрд▓реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдСрдЯреЛ-рдЬреЗрдирд░реЗрд╢рди рдЪрд╛рд▓реВ рд╣реИ - IndexedDB рд╣реА рдореБрдЦреНрдп рдореВрд▓реНрдп рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдЖрдк рдЕрдкрдирд╛ рдореБрдЦреНрдп рдореВрд▓реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
- рдХреБрдВрдЬреА рдлрд╝реАрд▓реНрдб рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдСрдЯреЛ-рдЬреЗрдирд░реЗрд╢рди рд╕рдХреНрд╖рдо рд╣реИ - рдпрджрд┐ рдирдП рддрддреНрд╡ рдХреЗ рдкрд╛рд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ IndexedDB рдПрдХ рдирдпрд╛ рдорд╛рди рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдк рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЖрджрд┐рдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖реЗрддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЕрдкрдиреЗ рдкреНрд░рдореБрдЦ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдЖрдк
CreateObjectStore рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ ObjectStore рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред ObjectStore рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдЗрд╕рдХрд╛ рдирд╛рдо рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рдореБрдЦ рдлрд╝реАрд▓реНрдбред рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрдбреЗрдХреНрд╕
createIndex рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдЗрд╕рдХрд╛ рдирд╛рдо, рдЙрд╕ рдлрд╝реАрд▓реНрдб рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдВрдЬреА рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛:
objectStore.createIndex("name", "name", { unique: false });
рдиреЛрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдкрд░рд┐рдЪрдп рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, IndexedDB рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рд╕рдВрдЪрд╛рд▓рди рд▓реЗрдирджреЗрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рд▓реЗрдирджреЗрди
рд▓реЗрдирджреЗрди рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рдореЗрдВ, рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреМрди рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдЯреЛрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдПрдХреНрд╕реЗрд╕ рдореЛрдб: рдкрдврд╝рдирд╛, рдкрдврд╝рдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛, рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓рдирд╛ред рд╕рдВрд╕реНрдХрд░рдг рдкрд░рд┐рд╡рд░реНрддрди рдореЛрдб рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ onupgradeneeded рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рд╣реИред
рдореИрдВрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдирд╣реАрдВ рдорд╛рдкреАрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдирдЬрд╝рд░рд┐рдП рд╕реЗ рдпрд╣ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рд▓реЗрди-рджреЗрди рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ: рдХреЗрд╡рд▓ рд╡рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЬрдм рдЖрдкрдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рддреЛ рд░рд┐рдХреЙрд░реНрдб рди рдорд╛рдВрдЧреЗрдВред
db.transaction(["myObjectStore"], "readonly");
рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЦреБрд▓рд╛ рд▓реЗрди-рджреЗрди рд╣реИ, рддреЛ рд╣рдо рдЕрдкрдирд╛ рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдЯреЛрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╣реИрдВ:
- рдЬреЛрдбрд╝ - рдПрдХ рд╕рдЦреНрддреА рд╕реЗ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ;
- рдбрд╛рд▓ - рдУрд╡рд░рд░рд╛рдЗрдЯ рдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рддрд╛ рд╣реИ;
- рдорд┐рд▓ - рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рджреЗрддрд╛ рд╣реИ;
- рд╣рдЯрд╛рдПрдВ - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рд╣рдЯрд╛рддрд╛ рд╣реИред
рдХрд░реНрд╕рд░
рдпрджрд┐ рдЖрдк рдЙрд╕ рдХреБрдВрдЬреА рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрдк рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрджрд┐ рдЖрдк ObjectStore рдореЗрдВ рд╕рднреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
var customers = []; objectStore.openCursor().onsuccess = function(event) { var cursor = event.target.result; if (cursor) { customers.push(cursor.value); cursor.continue(); } else { alert("Got all customers: " + customers); } };
рд▓реЗрдХрд┐рди рдореЛрдЬрд╝рд┐рд▓рд╛ рдХреЗ рд▓реЛрдЧ, рдореЗрд░реЗ рдЬреИрд╕реЗ, рдиреЗ рд╕рднреА рд░рд┐рдХреЙрд░реНрдбреЛрдВ рдХреЛ рдЕрд╕рд╣рдЬ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рддрд░реАрдХрд╛ рдкрд╛рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдРрд╕рд╛ рддрд░реАрдХрд╛ рдмрдирд╛рдпрд╛ рдЬреЛ рддреБрд░рдВрдд ObjectStore рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓реМрдЯрд╛ рджреЗрддрд╛ рд╣реИ:
mozGetAll ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред
рд╕реВрдЪреА
рдпрджрд┐ рдЖрдк рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рднреА рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
var index = objectStore.index("name"); index.get("Donna").onsuccess = function(event) { alert("Donna's SSN is " + event.target.result.ssn); };
рдкреНрд░рддрд┐рдмрдВрдз
рдЖрдХрд╛рд░
рдЖрдХрд╛рд░ рдкрд░ рд▓рдЧрднрдЧ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИрдВред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗрд╡рд▓ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╢рд░реНрдд рдкрд░ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрддрд┐рд░рд┐рдХреНрдд 50 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдХреНрд░реЛрдо рдЙрди рд╕рднреА рд╡реЗрдм рдкреЗрдЬреЛрдВ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рддрд╣рдд рдЖрдзреЗ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЙрд╕ рдЖрдзреЗ рдХреЗ 20% рддрдХ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рд╕рдорд░реНрдерди
рдпрд╣ рд╕рдлрд╛рд░реА рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдУрдкреЗрд░рд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдирдП рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдЬреЛ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред
рдЙрджрд╛рд╣рд░рдг
рдЖрдорддреМрд░ рдкрд░, рд╕рднреА рд▓реЗрдЦреЛрдВ рдореЗрдВ, рдкрддрд╛ рдкреБрд╕реНрддрд┐рдХрд╛ рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рднрдВрдбрд╛рд░рдг рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИред
var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB, IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction, baseName = "filesBase", storeName = "filesStore"; function logerr(err){ console.log(err); } function connectDB(f){ var request = indexedDB.open(baseName, 1); request.onerror = logerr; request.onsuccess = function(){ f(request.result); } request.onupgradeneeded = function(e){ e.currentTarget.result.createObjectStore(storeName, { keyPath: "path" }); connectDB(f); } } function getFile(file, f){ connectDB(function(db){ var request = db.transaction([storeName], "readonly").objectStore(storeName).get(file); request.onerror = logerr; request.onsuccess = function(){ f(request.result ? request.result : -1); } }); } function getStorage(f){ connectDB(function(db){ var rows = [], store = db.transaction([storeName], "readonly").objectStore(storeName); if(store.mozGetAll) store.mozGetAll().onsuccess = function(e){ f(e.target.result); }; else store.openCursor().onsuccess = function(e) { var cursor = e.target.result; if(cursor){ rows.push(cursor.value); cursor.continue(); } else { f(rows); } }; }); } function setFile(file){ connectDB(function(db){ var request = db.transaction([storeName], "readwrite").objectStore(storeName).put(file); request.onerror = logerr; request.onsuccess = function(){ return request.result; } }); } function delFile(file){ connectDB(function(db){ var request = db.transaction([storeName], "readwrite").objectStore(storeName).delete(file); request.onerror = logerr; request.onsuccess = function(){ console.log("File delete from DB:", file); } }); }
рдирд┐рд╖реНрдХрд░реНрд╖
IndexedDB рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдпрд╣ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдЙрдкрдХрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА рдЗрд╕реЗ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред WebStorage рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╣рд╛рдБ рдкрд╣реБрдБрдЪреЗрдВ - рдмреЗрд╣рддрд░ WebStorage рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЬрд╣рд╛рдВ рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдХреБрдЫ рднреА рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдХреБрдЫ рднреА рд╕реНрдЯреЛрд░ рди рдХрд░реЗрдВред
рдЕрдм рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рд╡реЗрдмрд╕реНрдЯреЛрд░реЗрдЬ, рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рдПрдкреАрдЖрдИ, рдЗрдВрдбреЗрдХреНрд╕рдбреАрдбреАрдмреА рдФрд░ рд╡реЗрдмрдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рдЕрдкрдиреЗ рдЕрдВрджрд░ рд╕рдореЗрдЯрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдЕрдкрдирд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рджреВрд╕рд░реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдХреЛрдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЦреАрдВрдЪрдиреЗ рдХреА рдЬрд░реВрд░рдд рди рдкрдбрд╝реЗ, рдЬрдм рдЖрдкрдХреЛ рдЗрд╕рдХреА рд╕рдордЭ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
MDN рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред