Я ищу библиотеки и код javascript, которые можно моделировать localStorage
в браузерах, не имеющих встроенной поддержки.
По сути, я хотел бы кодировать свой сайт localStorage
для хранения данных и знать, что он по-прежнему будет работать в браузерах, которые его не поддерживают. Это означало бы, что библиотека обнаружит, window.localStorage
существует ли, и будет использовать ее, если она есть. Если он не существует, он создаст своего рода резервный метод локального хранилища, создав свою собственную реализацию в window.localStorage
пространстве имен.
Пока что я нашел эти решения:
- Простая реализация sessionStorage .
- Реализация , использующая файлы cookie (не в восторге от этой идеи).
- Додзё dojox.storage , но это собственное дело, на самом деле не запасной вариант.
Я понимаю, что Flash и Silverlight также можно использовать для локального хранилища, но я не нашел ничего, чтобы использовать их в качестве запасного варианта для стандартного HTML5 localStorage. Возможно, у Google Gears тоже есть такая возможность?
Пожалуйста, поделитесь любыми связанными библиотеками, ресурсами или фрагментами кода, которые вы нашли! Меня бы особенно интересовали решения на основе чистого javascript или jquery, но я предполагаю, что это маловероятно.
источник
Ответы:
Я использую PersistJS ( репозиторий github ), который легко и прозрачно обрабатывает хранилище на стороне клиента для вашего кода. Вы используете единый API и получаете поддержку следующих серверных программ:
Любой из них можно отключить, например, если вы не хотите использовать файлы cookie. С помощью этой библиотеки вы получите встроенную поддержку хранилища на стороне клиента в IE 5.5+, Firefox 2.0+, Safari 3.1+ и Chrome; и поддержка с помощью плагинов, если в браузере есть Flash или Gears. Если вы включите файлы cookie, они будут работать во всем (но будут ограничены 4 КБ).
источник
Простой полифилл localStorage на основе чистого JS:
Демо: http://jsfiddle.net/aamir/S4X35/
HTML:
JS:
источник
var expires
локально, а затем пользователя в другой области? в работеset
Вы видели страницу полифиллов в вики Modernizr?
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
найдите на этой странице раздел веб-хранилища, и вы увидите 10 возможных решений (по состоянию на июль 2011 г.).
удачи! отметка
источник
Ниже приведена приведенная в порядок версия ответа Амира Африди, в котором весь код инкапсулирован в локальной области.
Я удалил ссылки, которые создают глобальную
ret
переменную, а также удалил синтаксический анализ сохраненных строк «истина» и «ложь» на логические значения внутриBrowserStorage.get()
метода, что могло вызвать проблемы, если кто-то пытается фактически сохранить строки «истина» или "ложный".Поскольку API локального хранилища поддерживает только строковые значения, можно по-прежнему хранить / извлекать данные переменных JavaScript вместе с соответствующими типами данных, кодируя указанные данные в строку JSON, которая затем может быть декодирована с помощью библиотеки кодирования / декодирования JSON, такой как https: //github.com/douglascrockford/JSON-js
источник
Лично я предпочитаю ampify.js . Раньше он работал у меня очень хорошо, и я рекомендовал его для всех нужд локального хранилища.
источник
store.js использует userData и IE и localStorage в других браузерах.
Не пытается делать что-то слишком сложное
Никаких файлов cookie, flash или jQuery не требуется.
Чистый API.
5 кб в сжатом виде
https://github.com/marcuswestin/store.js
источник
На странице MDN для хранилища DOM есть несколько обходных путей с использованием файлов cookie.
источник
Газонокосилка тоже кажется хорошей альтернативой
источник
Есть реальное хранилище , которое использует Gears как запасной вариант.
источник