Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   localstorge ФУНКЦИЯ ДЛЯ РАБОТЫ!!!!! (https://javascript.ru/forum/misc/24588-localstorge-funkciya-dlya-raboty.html)

devote 07.01.2012 20:52

ну а если уж очень любишь минимизацию, то можно и так:
function storage( key, value ) {
    return JSON.parse( localStorage[ typeof value === "undefined" ? 'getItem' : value === null ? 'removeItem' : 'setItem' ]( key, JSON.stringify( value ) ) );
}
Правда парсер JSON возможно будет не доволен, после выполнения например функции removeItem или setItem но можно запихать в try catch это все.

devote 07.01.2012 20:53

Цитата:

Сообщение от Livaanderiamarum
щас посмотрим как работает твое тварение)))))

ну понятно дело что функции она не будет совать в хранилище, но вот вопрос а нахуя их туда совать?

Livaanderiamarum 07.01.2012 21:10

Цитата:

Сообщение от devote (Сообщение 148688)
ну понятно дело что функции она не будет совать в хранилище, но вот вопрос а нахуя их туда совать?

Я хочу положить обьект чата в хранилеще чтобы потом его больше не грузить чат у меня это целое прложение)) сайт может работать как с чатом так и без) человек закрывет чат и он попадает в хранилеще) человек открывает чат и чат достается из хранилеща при том мой сервер не дергается)

Livaanderiamarum 07.01.2012 21:14

Цитата:

Сообщение от devote (Сообщение 148686)
ну а если уж очень любишь минимизацию, то можно и так:
function storage( key, value ) {
    return JSON.parse( localStorage[ typeof value === "undefined" ? 'getItem' : value === null ? 'removeItem' : 'setItem' ]( key, JSON.stringify( value ) ) );
}
Правда парсер JSON возможно будет не доволен, после выполнения например функции removeItem или setItem но можно запихать в try catch это все.

Кстати ты мне подал одну идею о том как Сделать типизацию) JSON же есть) он сам все определяет) я его не на всю катушку использовал)

devote 07.01.2012 21:17

а ну понятно, хотя это глупо совать функции в хранилище... функция может измениться. Ну то есть сменил ты версию своей функции, а чел зашел и юзает старую не совместимую вылетает ошибка... Поэтому такие вещи не хранят в хранилищах, особенно удаленных локальных у пользователя. Но а что по поводу того что у тебя, дык это единичный случай. Ибо сомневаюсь что кто-то будет хранить там функции...

Livaanderiamarum 07.01.2012 21:23

Цитата:

Сообщение от devote (Сообщение 148693)
а ну понятно, хотя это глупо совать функции в хранилище... функция может измениться. Ну то есть сменил ты версию своей функции, а чел зашел и юзает старую не совместимую вылетает ошибка... Поэтому такие вещи не хранят в хранилищах, особенно удаленных локальных у пользователя. Но а что по поводу того что у тебя, дык это единичный случай. Ибо сомневаюсь что кто-то будет хранить там функции...

Ну да, ты прав... А что на счет селекторов? Глупая затея?

devote 07.01.2012 21:23

Цитата:

Сообщение от Livaanderiamarum
А что на счет селекторов? Глупая затея?

не совсем понял о чем ты?

Livaanderiamarum 07.01.2012 21:29

Цитата:

Сообщение от devote (Сообщение 148696)
не совсем понял о чем ты?

Я про пространство имен, посмотри примеры использования в топике

devote 07.01.2012 21:33

Цитата:

Сообщение от Livaanderiamarum
Я про пространство имен, посмотри примеры использования в топике

А, ну это может и понадобиться конечно, хотя пока не могу представить где и когда. Вроде если кладу что-то в хранилище, то и так знаю что именно. Но вообще конечно идея не плохая. Хотя мне пока не нужна.

Kolyaj 07.01.2012 21:51

Цитата:

Сообщение от devote
02	    if ( typeof value === "undefined" ) {
03	        return JSON.parse( localStorage.getItem( key ) );
04	    }

В таких случаях всегда проверяем arguments.length, а не typeof value. Может я хочу undefined положить?


Часовой пояс GMT +3, время: 17:16.