Для всех, кто заинтересовался, я создал здесь скрипт "localalstorage with expirations", http://plugins.jquery.com/project/localcache
Что я делаю: создание расширения для хранилища, чтобы пользователь мог сделать это:
localStorage.setThing(key, value)
и пользователь может сделать следующее:
localStorage.setThing("key1", 1)
localStorage.setThing("key2", "this is a string")
localStorage.setThing("key3", { prop1: "this is a json obj" })
В моем методе setThing я проверяю typeof для значения, а если typeof value == "object"
, я сохраняю его как localStorage.setItem(key, JSON.stringify(value))
В методе getThing я знаю, что значение, которое превращает его в localStorage, всегда будет строкой. Итак, как я могу это сделать?
var val = localStorage.getItem("key3")
if (val is a previously JSON.stringify'd object) // <-- ??
return JSON.parse(val)
Нужно ли выполнять проверку регулярных выражений для val, и если да, есть ли у кого-нибудь удобный шаблон, который сообщает мне, действительно ли строка является объектом JSON.stringify?
Спасибо!