Розробник та блогер Julien Etienne у своїй колонці на платформі Medium радить відмовитися від localStorage. Ми переклали текст, щоб ви могли ознайомитися з його аргументами. Далі — слово автору.
localStorage не був розроблений для сучасних додатків і не підтримує алгоритм структурованого клонування. Заголовок не є клікбейтом, повідомлення різке: «Припиніть використовувати localStorage!». Тут немає ніякої двозначності, і ми не беремося за руки і не співаємо кумбайя, щоб пом’якшити удар.
localStorage з’явився на сцені приблизно в 2009 році як сховище на основі рядків розміром 5 МБ. Він ніколи не був розроблений як остаточний спосіб зберігання даних у браузері.
Давайте відразу перейдемо до суті з деякими основними моментами, оскільки наша увага в наші дні розсіяна:
WebSQL мала на меті бути простим інтерфейсом бази даних SQL для Інтернету. Він мав пристойну підтримку, але з часом зіткнувся з проблемами, які призвели до його занепаду.
Зрештою, IndexedDB стала «рекомендованим» стандартом для зберігання даних на стороні клієнта, оскільки вважається більш надійною та кросбраузерною. Але що хорошого в «рекомендованому», якщо більшість досвідчених фронтенд-розробників на момент написання цієї статті уникали його, як чуми?
Незважаючи на свої недоліки, в свій час WebSQL високо цінувалася серед веб-спільноти і була гідним конкурентом.
Файли cookie були створені в 1994 році Лу Монтуллі, розробником веб-браузерів компанії Netscape Communications.
Дехто з вас ще навіть не народився, коли файли cookie псували життя. Назва цієї статті мала б бути «Припиніть використовувати файли cookie та localStorage», але це дуже важка боротьба (так, ми повинні використовувати безпечні файли cookie).
Це зовсім не весело, і у вас є кращі заняття, ніж боротися з вороже налаштованим сховищем, щоб потім розчаруватися через те, що воно виявилося не таким, як ви очікували.
Причина, з якої ви хочете користуватися бібліотекою, полягає в тому, що здебільшого вони:
Я не рекомендую використовувати бібліотеки, розмір яких перевищує, наприклад, 10 кБ у заархівованому вигляді. Всі ці кілобайти складаються, і ці бібліотеки розміром понад 50 кБ не роблять нічого значущого для ваших реальних сценаріїв.
Єдина проблема, яку я виявив з більшістю бібліотек IndexedDB, полягає в тому, що вони здебільшого орієнтовані на керування версіями, що вам, ймовірно, зовсім не потрібно, особливо якщо ви просто шукаєте розумну альтернативу localStorage.
Швидка затичка: я створив db64, бібліотеку, щоб зосередитися на більш відносних аспектах IndexedDB.
Якщо вам потрібна версійність або курсори, я б порекомендував idb, яка є всеосяжною бібліотекою, що добре покриває всі нішеві випадки.
На мою думку, ніхто не повинен використовувати localStorage в наш час. Новим розробникам краще погратися з Promise() або async/ await, ніж намагатися з’ясувати, чому число «0» робить їхні умови truthy.
Підсумовуючи, можна сказати, що є перевага у швидкості, це неблокування, ви можете надійно зберігати типи і навіть використовувати курсор для ітерації над записами, якщо вам подобаються такі речі, ви можете легко побудувати пошукову систему на стороні клієнта з накопиченими вибірками даних, які не змушують ваші анімації смикатися, як це робить localStorage, блокуючи і втручаючись в них.
Для постійного зберігання даних IndexedDB є кращим інструментом, особливо якщо ви використовуєте бібліотеку-обгортку, щоб полегшити собі життя.
Днями я завзято нила про щось ChatGPT (експериментую між сеансами з живим терапевтом). І от…
«Крутіть колесо, щоб отримати знижку до 50%!» «Натисніть тут, щоб відкрити таємничу пропозицію!» «Зареєструйтесь зараз,…
Дуже хочеться робити якісь десктопні апки. Сумую за часами коли всі програми були offline-first, і…
Надсилаючи криптовалюту, багато новачків ставлять запитання: як працюють комісії та чому вони відрізняються в різних…
Нова афера набирає обертів — ось детальний розбір того, як фальшиві потенційні роботодавці намагаються вкрасти…
Соцмережа з можливістю вбудовувати повноцінні додатки прямо в пости — звучить як фантастика, але Farcaster…