localStorage - JS & jQuery
100+ примеров использования localStorage с JS и jQuery, которые помогут сохранить данные в браузере в объёме 5 мегабайт, полное описание и сравнение.Полное руководство по localStorage
localStorage - это часть Web Storage API, которая позволяет хранить данные на стороне клиента в браузере объёмом 5 мегабайт. В этой статье мы рассмотрим более 100 примеров использования localStorage с помощью JavaScript и jQuery.
Разница между JavaScript и jQuery для работы с localStorage
В этом разделе мы рассмотрим, чем отличается использование JavaScript и jQuery для работы с localStorage
. Оба подхода имеют свои преимущества и недостатки, и выбор между ними зависит от ваших задач и предпочтений.
Чистый JavaScript
JavaScript - это нативный язык программирования, который предоставляет прямые методы для работы с localStorage
.
Преимущества:
- Высокая производительность.
- Не требует дополнительных библиотек.
- Универсальность - работает в любом современном браузере.
Недостатки:
- Более многословный синтаксис для работы с DOM.
Пример:
document.addEventListener('DOMContentLoaded', function() { localStorage.setItem('theme', 'light'); let theme = localStorage.getItem('theme'); document.body.style.backgroundColor = theme === 'light' ? '#fff' : '#333'; });
jQuery
jQuery - это библиотека, которая упрощает работу с DOM и событиями, но не предоставляет специальных методов для localStorage
.
Преимущества:
- Упрощает манипуляции с DOM и обработку событий.
- Более компактный и читаемый синтаксис.
Недостатки:
- Требует подключения библиотеки.
- Незначительный оверхед по производительности.
Пример:
$(document).ready(function() { localStorage.setItem('theme', 'light'); let theme = localStorage.getItem('theme'); $('body').css('background-color', theme === 'light' ? '#fff' : '#333'); });
Сравнение JavaScript и jQuery
Критерий | Чистый JavaScript | jQuery |
---|---|---|
Скорость | Быстрее, так как это нативный код. | Медленнее из-за оверхеда библиотеки. |
Удобство работы с DOM | Требует больше кода для манипуляций с DOM. | Упрощает манипуляции с DOM и обработку событий. |
Зависимости | Не требует дополнительных библиотек. | Требует подключения jQuery. |
Читаемость кода | Более многословный синтаксис. | Более компактный и читаемый синтаксис. |
Универсальность | Работает везде, где поддерживается JavaScript. | Требует поддержки jQuery в проекте. |
Когда использовать JavaScript, а когда jQuery?
Используйте чистый JavaScript, если вам не нужны дополнительные функции jQuery, вы хотите максимально оптимизировать производительность или работаете в среде, где подключение jQuery нежелательно.
Используйте jQuery, если вы уже используете его в проекте для других задач (например, для работы с DOM или анимациями) или хотите упростить обработку событий и динамическое обновление интерфейса на основе данных из localStorage
.
Примеры на JavaScript:
Сохранение данных (JavaScript)
localStorage.setItem('username', 'JohnDoe');
Получение данных (JavaScript)
let username = localStorage.getItem('username'); console.log(username); // JohnDoe
Удаление данных (JavaScript)
localStorage.removeItem('username');
Очистка всех данных (JavaScript)
localStorage.clear();
Сохранение объекта (JavaScript)
let user = { name: 'John', age: 30 }; localStorage.setItem('user', JSON.stringify(user));
Получение объекта (JavaScript)
let savedUser = JSON.parse(localStorage.getItem('user')); console.log(savedUser.name); // John
Проверка наличия ключа (JavaScript)
if (localStorage.getItem('username') === null) { console.log('Ключ не найден'); }
Перебор всех ключей (JavaScript)
for (let i = 0; i < localStorage.length; i++) { let key = localStorage.key(i); console.log(key, localStorage.getItem(key)); }
Сохранение массива (JavaScript)
let colors = ['red', 'green', 'blue']; localStorage.setItem('colors', JSON.stringify(colors));
Получение массива (JavaScript)
let savedColors = JSON.parse(localStorage.getItem('colors')); console.log(savedColors); // ['red', 'green', 'blue']
Сохранение числа (JavaScript)
localStorage.setItem('age', 25);
Получение числа (JavaScript)
let age = parseInt(localStorage.getItem('age')); console.log(age); // 25
Сохранение булевого значения (JavaScript)
localStorage.setItem('isActive', true);
Получение булевого значения (JavaScript)
let isActive = localStorage.getItem('isActive') === 'true'; console.log(isActive); // true
Сохранение даты (JavaScript)
localStorage.setItem('lastLogin', new Date().toISOString());
Получение даты (JavaScript)
let lastLogin = new Date(localStorage.getItem('lastLogin')); console.log(lastLogin);
Сохранение HTML-кода (JavaScript)
localStorage.setItem('htmlContent', 'Hello World');
Получение HTML-кода (JavaScript)
let htmlContent = localStorage.getItem('htmlContent'); document.body.innerHTML += htmlContent;
Сохранение JSON (JavaScript)
localStorage.setItem('config', JSON.stringify({ theme: 'dark', lang: 'ru' }));
Получение JSON (JavaScript)
let config = JSON.parse(localStorage.getItem('config')); console.log(config.theme); // dark
Сохранение большого текста (JavaScript)
localStorage.setItem('longText', 'Lorem ipsum dolor sit amet...');
Получение большого текста (JavaScript)
let longText = localStorage.getItem('longText'); console.log(longText);
Сохранение данных с истекающим сроком (JavaScript)
let data = { value: 'Some data', expires: Date.now() + 3600000 }; // 1 час localStorage.setItem('tempData', JSON.stringify(data));
Проверка срока действия данных (JavaScript)
let tempData = JSON.parse(localStorage.getItem('tempData')); if (tempData && tempData.expires > Date.now()) { console.log(tempData.value); // Some data } else { localStorage.removeItem('tempData'); }
Сохранение данных с шифрованием (базовый пример) (JavaScript)
localStorage.setItem('encryptedData', btoa('Secret Data'));
Получение зашифрованных данных (JavaScript)
let encryptedData = atob(localStorage.getItem('encryptedData')); console.log(encryptedData); // Secret Data
Сохранение данных с уникальным ключом (JavaScript)
let uniqueKey = 'user_' + Date.now(); localStorage.setItem(uniqueKey, 'Unique Data');
Получение данных по уникальному ключу (JavaScript)
let uniqueData = localStorage.getItem(uniqueKey); console.log(uniqueData); // Unique Data
Сохранение данных с префиксом (JavaScript)
localStorage.setItem('app_settings_theme', 'dark');
Получение всех данных с префиксом (JavaScript)
for (let i = 0; i < localStorage.length; i++) { let key = localStorage.key(i); if (key.startsWith('app_settings_')) { console.log(key, localStorage.getItem(key)); } }
Сохранение данных с ограничением по размеру (JavaScript)
function saveLargeData(key, data) { try { localStorage.setItem(key, data); } catch (e) { console.error('Ошибка сохранения: ', e); } } saveLargeData('largeData', '...');
Получение данных с проверкой на null (JavaScript)
let data = localStorage.getItem('nonExistentKey'); if (data !== null) { console.log(data); } else { console.log('Данные отсутствуют'); }
Сохранение данных с метаинформацией (JavaScript)
let metaData = { created: Date.now(), author: 'Admin' }; localStorage.setItem('metaInfo', JSON.stringify(metaData));
Получение метаинформации (JavaScript)
let metaInfo = JSON.parse(localStorage.getItem('metaInfo')); console.log(metaInfo.author); // Admin
Сохранение данных с версией (JavaScript)
let versionedData = { version: 1, content: 'Some content' }; localStorage.setItem('versionedData', JSON.stringify(versionedData));
Получение данных с проверкой версии (JavaScript)
let savedVersionedData = JSON.parse(localStorage.getItem('versionedData')); if (savedVersionedData.version === 1) { console.log(savedVersionedData.content); // Some content }
Сохранение данных с таймером (JavaScript)
let timedData = { value: 'Timed Data', timestamp: Date.now() }; localStorage.setItem('timedData', JSON.stringify(timedData));
Получение данных с проверкой времени (JavaScript)
let savedTimedData = JSON.parse(localStorage.getItem('timedData')); if (Date.now() - savedTimedData.timestamp < 60000) { // 1 минута console.log(savedTimedData.value); // Timed Data }
Сохранение данных с инкрементным ключом (JavaScript)
let counter = localStorage.getItem('counter') || 0; localStorage.setItem('data_' + counter, 'Data ' + counter); localStorage.setItem('counter', ++counter);
Получение данных с инкрементным ключом (JavaScript)
for (let i = 0; i < counter; i++) { console.log(localStorage.getItem('data_' + i)); }
Сохранение данных с проверкой на дубликаты (JavaScript)
let items = JSON.parse(localStorage.getItem('items')) || []; if (!items.includes('New Item')) { items.push('New Item'); localStorage.setItem('items', JSON.stringify(items)); }
Получение данных с фильтрацией (JavaScript)
let filteredItems = items.filter(item => item.startsWith('New')); console.log(filteredItems);
Сохранение данных с сортировкой (JavaScript)
let sortedItems = items.sort(); localStorage.setItem('sortedItems', JSON.stringify(sortedItems));
Получение отсортированных данных (JavaScript)
let savedSortedItems = JSON.parse(localStorage.getItem('sortedItems')); console.log(savedSortedItems);
Сохранение данных с группировкой (JavaScript)
let groupedData = { group1: ['Item1', 'Item2'], group2: ['Item3'] }; localStorage.setItem('groupedData', JSON.stringify(groupedData));
Получение сгруппированных данных (JavaScript)
let savedGroupedData = JSON.parse(localStorage.getItem('groupedData')); console.log(savedGroupedData.group1); // ['Item1', 'Item2']
Сохранение данных с индексацией (JavaScript)
let indexedData = { index1: 'Value1', index2: 'Value2' }; localStorage.setItem('indexedData', JSON.stringify(indexedData));
Получение данных по индексу (JavaScript)
let savedIndexedData = JSON.parse(localStorage.getItem('indexedData')); console.log(savedIndexedData.index1); // Value1
Сохранение данных с преобразованием (JavaScript)
let transformedData = { original: 'Data', transformed: btoa('Data') }; localStorage.setItem('transformedData', JSON.stringify(transformedData));
Получение преобразованных данных (JavaScript)
let savedTransformedData = JSON.parse(localStorage.getItem('transformedData')); console.log(atob(savedTransformedData.transformed)); // Data
Сохранение данных с обработкой ошибок (JavaScript)
try { localStorage.setItem('importantData', 'Critical Information'); } catch (e) { console.error('Ошибка сохранения данных: ', e); }
Получение данных с обработкой ошибок (JavaScript)
try { let data = localStorage.getItem('importantData'); if (data === null) { console.log('Данные отсутствуют'); } else { console.log(data); } } catch (e) { console.error('Ошибка получения данных: ', e); }
Сохранение данных с автоматическим удалением через время (JavaScript)
let data = { value: 'Temporary Data', expires: Date.now() + 60000 }; // 1 минута localStorage.setItem('tempData', JSON.stringify(data)); setTimeout(() => { localStorage.removeItem('tempData'); console.log('Данные удалены'); }, 60000);
Примеры на jQuery:
Сохранение данных (jQuery)
$(document).ready(function() { localStorage.setItem('theme', 'dark'); });
Получение данных (jQuery)
$(document).ready(function() { let theme = localStorage.getItem('theme'); console.log(theme); // dark });
Удаление данных (jQuery)
$(document).ready(function() { localStorage.removeItem('theme'); });
Очистка всех данных (jQuery)
$(document).ready(function() { localStorage.clear(); });
Сохранение объекта (jQuery)
$(document).ready(function() { let settings = { theme: 'light', fontSize: 14 }; localStorage.setItem('settings', JSON.stringify(settings)); });
Получение объекта (jQuery)
$(document).ready(function() { let savedSettings = JSON.parse(localStorage.getItem('settings')); console.log(savedSettings.theme); // light });
Проверка наличия ключа (jQuery)
$(document).ready(function() { if (localStorage.getItem('theme') === null) { console.log('Ключ не найден'); } });
Перебор всех ключей (jQuery)
$(document).ready(function() { $.each(localStorage, function(key, value) { console.log(key, value); }); });
Сохранение массива (jQuery)
$(document).ready(function() { let tasks = ['Task 1', 'Task 2', 'Task 3']; localStorage.setItem('tasks', JSON.stringify(tasks)); });
Получение массива (jQuery)
$(document).ready(function() { let savedTasks = JSON.parse(localStorage.getItem('tasks')); console.log(savedTasks); // ['Task 1', 'Task 2', 'Task 3'] });
Сохранение числа (jQuery)
$(document).ready(function() { localStorage.setItem('age', 25); });
Получение числа (jQuery)
$(document).ready(function() { let age = parseInt(localStorage.getItem('age')); console.log(age); // 25 });
Сохранение булевого значения (jQuery)
$(document).ready(function() { localStorage.setItem('isActive', true); });
Получение булевого значения (jQuery)
$(document).ready(function() { let isActive = localStorage.getItem('isActive') === 'true'; console.log(isActive); // true });
Сохранение даты (jQuery)
$(document).ready(function() { localStorage.setItem('lastLogin', new Date().toISOString()); });
Получение даты (jQuery)
$(document).ready(function() { let lastLogin = new Date(localStorage.getItem('lastLogin')); console.log(lastLogin); });
Сохранение HTML-кода (jQuery)
$(document).ready(function() { localStorage.setItem('htmlContent', 'Hello World'); });
Получение HTML-кода (jQuery)
$(document).ready(function() { let htmlContent = localStorage.getItem('htmlContent'); $('body').append(htmlContent); });
Сохранение JSON (jQuery)
$(document).ready(function() { localStorage.setItem('config', JSON.stringify({ theme: 'dark', lang: 'ru' })); });
Получение JSON (jQuery)
$(document).ready(function() { let config = JSON.parse(localStorage.getItem('config')); console.log(config.theme); // dark });
Сохранение большого текста (jQuery)
$(document).ready(function() { localStorage.setItem('longText', 'Lorem ipsum dolor sit amet...'); });
Получение большого текста (jQuery)
$(document).ready(function() { let longText = localStorage.getItem('longText'); console.log(longText); });
Сохранение данных с истекающим сроком (jQuery)
$(document).ready(function() { let data = { value: 'Some data', expires: Date.now() + 3600000 }; // 1 час localStorage.setItem('tempData', JSON.stringify(data)); });
Проверка срока действия данных (jQuery)
$(document).ready(function() { let tempData = JSON.parse(localStorage.getItem('tempData')); if (tempData && tempData.expires > Date.now()) { console.log(tempData.value); // Some data } else { localStorage.removeItem('tempData'); } });
Сохранение данных с шифрованием (базовый пример) (jQuery)
$(document).ready(function() { localStorage.setItem('encryptedData', btoa('Secret Data')); });
Получение зашифрованных данных (jQuery)
$(document).ready(function() { let encryptedData = atob(localStorage.getItem('encryptedData')); console.log(encryptedData); // Secret Data });
Сохранение данных с уникальным ключом (jQuery)
$(document).ready(function() { let uniqueKey = 'user_' + Date.now(); localStorage.setItem(uniqueKey, 'Unique Data'); });
Получение данных по уникальному ключу (jQuery)
$(document).ready(function() { let uniqueData = localStorage.getItem(uniqueKey); console.log(uniqueData); // Unique Data });
Сохранение данных с префиксом (jQuery)
$(document).ready(function() { localStorage.setItem('app_settings_theme', 'dark'); });
Получение всех данных с префиксом (jQuery)
$(document).ready(function() { for (let i = 0; i < localStorage.length; i++) { let key = localStorage.key(i); if (key.startsWith('app_settings_')) { console.log(key, localStorage.getItem(key)); } } });
Сохранение данных с ограничением по размеру (jQuery)
$(document).ready(function() { function saveLargeData(key, data) { try { localStorage.setItem(key, data); } catch (e) { console.error('Ошибка сохранения: ', e); } } saveLargeData('largeData', '...'); });
Получение данных с проверкой на null (jQuery)
$(document).ready(function() { let data = localStorage.getItem('nonExistentKey'); if (data !== null) { console.log(data); } else { console.log('Данные отсутствуют'); } });
Сохранение данных с метаинформацией (jQuery)
$(document).ready(function() { let metaData = { created: Date.now(), author: 'Admin' }; localStorage.setItem('metaInfo', JSON.stringify(metaData)); });
Получение метаинформации (jQuery)
$(document).ready(function() { let metaInfo = JSON.parse(localStorage.getItem('metaInfo')); console.log(metaInfo.author); // Admin });
Сохранение данных с версией (jQuery)
$(document).ready(function() { let versionedData = { version: 1, content: 'Some content' }; localStorage.setItem('versionedData', JSON.stringify(versionedData)); });
Получение данных с проверкой версии (jQuery)
$(document).ready(function() { let savedVersionedData = JSON.parse(localStorage.getItem('versionedData')); if (savedVersionedData.version === 1) { console.log(savedVersionedData.content); // Some content } });
Сохранение данных с таймером (jQuery)
$(document).ready(function() { let timedData = { value: 'Timed Data', timestamp: Date.now() }; localStorage.setItem('timedData', JSON.stringify(timedData)); });
Получение данных с проверкой времени (jQuery)
$(document).ready(function() { let savedTimedData = JSON.parse(localStorage.getItem('timedData')); if (Date.now() - savedTimedData.timestamp < 60000) { // 1 минута console.log(savedTimedData.value); // Timed Data } });
Сохранение данных с инкрементным ключом (jQuery)
$(document).ready(function() { let counter = localStorage.getItem('counter') || 0; localStorage.setItem('data_' + counter, 'Data ' + counter); localStorage.setItem('counter', ++counter); });
Получение данных с инкрементным ключом (jQuery)
$(document).ready(function() { for (let i = 0; i < counter; i++) { console.log(localStorage.getItem('data_' + i)); } });
Сохранение данных с проверкой на дубликаты (jQuery)
$(document).ready(function() { let items = JSON.parse(localStorage.getItem('items')) || []; if (!items.includes('New Item')) { items.push('New Item'); localStorage.setItem('items', JSON.stringify(items)); } });
Получение данных с фильтрацией (jQuery)
$(document).ready(function() { let filteredItems = items.filter(item => item.startsWith('New')); console.log(filteredItems); });
Сохранение данных с сортировкой (jQuery)
$(document).ready(function() { let sortedItems = items.sort(); localStorage.setItem('sortedItems', JSON.stringify(sortedItems)); });
Получение отсортированных данных (jQuery)
$(document).ready(function() { let savedSortedItems = JSON.parse(localStorage.getItem('sortedItems')); console.log(savedSortedItems); });
Сохранение данных с группировкой (jQuery)
$(document).ready(function() { let groupedData = { group1: ['Item1', 'Item2'], group2: ['Item3'] }; localStorage.setItem('groupedData', JSON.stringify(groupedData)); });
Получение сгруппированных данных (jQuery)
$(document).ready(function() { let savedGroupedData = JSON.parse(localStorage.getItem('groupedData')); console.log(savedGroupedData.group1); // ['Item1', 'Item2'] });
Сохранение данных с индексацией (jQuery)
$(document).ready(function() { let indexedData = { index1: 'Value1', index2: 'Value2' }; localStorage.setItem('indexedData', JSON.stringify(indexedData)); });
Получение данных по индексу (jQuery)
$(document).ready(function() { let savedIndexedData = JSON.parse(localStorage.getItem('indexedData')); console.log(savedIndexedData.index1); // Value1 });
Сохранение данных с преобразованием (jQuery)
$(document).ready(function() { let transformedData = { original: 'Data', transformed: btoa('Data') }; localStorage.setItem('transformedData', JSON.stringify(transformedData)); });
Получение преобразованных данных (jQuery)
$(document).ready(function() { let savedTransformedData = JSON.parse(localStorage.getItem('transformedData')); console.log(atob(savedTransformedData.transformed)); // Data });
Сохранение данных с обработкой ошибок (jQuery)
$(document).ready(function() { try { localStorage.setItem('importantData', 'Critical Information'); } catch (e) { console.error('Ошибка сохранения данных: ', e); } });
Получение данных с обработкой ошибок (jQuery)
$(document).ready(function() { try { let data = localStorage.getItem('importantData'); if (data === null) { console.log('Данные отсутствуют'); } else { console.log(data); } } catch (e) { console.error('Ошибка получения данных: ', e); } });
Сохранение данных с автоматическим удалением через время (jQuery)
$(document).ready(function() { let data = { value: 'Temporary Data', expires: Date.now() + 60000 }; // 1 минута localStorage.setItem('tempData', JSON.stringify(data)); setTimeout(function() { localStorage.removeItem('tempData'); console.log('Данные удалены'); }, 60000); });
Попробуйте использовать LocalStorage
Заключение
И JavaScript, и jQuery могут эффективно использоваться для работы с localStorage. Выбор между ними зависит от ваших предпочтений и требований проекта. Если вам нужно максимально быстрое и легковесное решение, используйте чистый JavaScript. Если вы уже работаете с jQuery и хотите упростить манипуляции с DOM, то jQuery станет отличным выбором. Используйте наш Интерактивный редактор LocalStorage для тестирования работы LocalStorage в ваших проектах.