Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.04.2016, 18:25
Аватар для Алексей Петрович
Аспирант
Отправить личное сообщение для Алексей Петрович Посмотреть профиль Найти все сообщения от Алексей Петрович
 
Регистрация: 29.11.2015
Сообщений: 83

tasty-cookies (Вкусное печенье)
История старая, я так думаю все помнят window.cookie = '...' (А может кто этим пользуется), жутко не удобная хрень.

Давным давно в закалках сети я нашёл такую замечательную вещь как jQuery cookie , но со временем я стал осознавать что одного метода мне уже не хватает для удобной работы с печеньем.

Совсем не давно я стал знакомиться с angular, и как не странно у них тоже своя реализация cookies, не много лучше, но мне она кажется немного "странной", "мудрёной". Методы putObject, getObject - вообще ужас , и зачем они?

Мне надоело это разнообразие красок, хотелось бы чего нибудь одного такого теплого, уютного что бы выполняло самые простые вещи и давало отличные инструменты для работы с cookie. Я ушёл глубоко в поиск и к моему удивлению я не чего подходящего мне не нашёл, в не которые библиотеках не хватало методов, в других методов достаточно но они странные для меня. Может я слишком придирчив ?

На почве этого всего я решил изобрести свой велосипед с максимально круглыми колёсами и удобным сидением. Мне кажется это правильно. Работа затянулась на несколько суток, в общем вот что получилось сама библиотека tasty-cookies ну и русская документация.

Она использует объект JSON поэтому если надо поддержка старых браузеров можно подтянуть грабли типо JSON 3, хотя о чем это я ?

Хотелось бы услышать критики, оценки работы, ну и само собой предложений по улучшению библиотеки.
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2016, 23:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

var a={b:1,с:"Бла-бла бла"}
var b = JSON.stringify(a);
localStorage["store"]=b;
alert("Записали cтроковую развертку объекта")


var store = localStorage["store"];
//Cнова трансформируем в объект:
store = JSON.parse(store);
alert(['store.b='+store.b,'store.c='+store.с]);

Последний раз редактировалось Deff, 04.04.2016 в 23:53.
Ответить с цитированием
  #3 (permalink)  
Старый 04.04.2016, 23:56
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Алексей Петрович
если надо поддержка старых браузеров можно подтянуть грабли типо JSON 3,
На старых ИЕ фишка слабо реальная, ибо объем куков ограничен для оных 4096 байт, (учитывая необходимость и куков от сервера наверно можно использовать не более половины 2Кб - серьезный объект не влезет (особенно с русским текстом, который для Ие нужно перекодировать через encodeURIComponent. В новых браузерах на объём куков на домен тоже есть ограничение(не помню точно, но примерно 24кб)
Ограничение же для localStorage 5Mb. localStorage есть начиная с ИЕ8
===========
Для Storage все эти библиотечки для записи считывания в виде объектов давно уже есть (для куков наверно не имело смысла)

Последний раз редактировалось Deff, 05.04.2016 в 00:11.
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2016, 04:33
Аватар для Алексей Петрович
Аспирант
Отправить личное сообщение для Алексей Петрович Посмотреть профиль Найти все сообщения от Алексей Петрович
 
Регистрация: 29.11.2015
Сообщений: 83

Web Storage API Плохо телефонами поддерживается, а opera mini так вообще не знает что это такое а только она занимает 30% доли рынка. Это подходит для конкретного проекта и задачи. Пока к сожалению этим нельзя полностью заменить cookies.

Будет время когда Web SQL API будем пользуемся.

Последний раз редактировалось Алексей Петрович, 05.04.2016 в 10:29.
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2016, 06:16
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,664

Алексей Петрович, а так зачем:
var keys = [];
for (var _i = 0; _i < arguments.length; _i++) {
    keys[_i - 0] = arguments[_i];
}
Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2016, 08:14
Аватар для Алексей Петрович
Аспирант
Отправить личное сообщение для Алексей Петрович Посмотреть профиль Найти все сообщения от Алексей Петрович
 
Регистрация: 29.11.2015
Сообщений: 83

Rise, эту зубодробительную конструкцию выплёвывает TypeScript (Решил по экспериментировать).

Как всем известно arguments это псевдо-массив он имеет длину и числовые ключи, но он не имеет методов массива так как это объект. И что бы работать с ним как с массивом TypeScript и делает такую штукенцию.

В исходнике было что то типо:
export function methodName(...keys:string[]): any {
  // ...
}

Ну и собственно этот метод можно вызывать с любым количеством аргументов. К примеру с помощь метода get можно получить сразу несколько (Или сколько надо) cookie https://github.com/Alex5646/cookie.j...#cookiegetkeys

Последний раз редактировалось Алексей Петрович, 05.04.2016 в 08:53.
Ответить с цитированием
  #7 (permalink)  
Старый 05.04.2016, 13:22
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Алексей Петрович
Web Storage API Плохо телефонами поддерживается,
Зато на телефонах FileAPI отлично поддерживается
Ответить с цитированием
  #8 (permalink)  
Старый 05.04.2016, 14:03
Аватар для Алексей Петрович
Аспирант
Отправить личное сообщение для Алексей Петрович Посмотреть профиль Найти все сообщения от Алексей Петрович
 
Регистрация: 29.11.2015
Сообщений: 83

Сообщение от Deff Посмотреть сообщение
Зато на телефонах FileAPI отлично поддерживается
Да и на компе вроде поддержка есть caniuse, только вот у IE и Safari конструктора класса нет, а так вроде не чего.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли заставить ajax не отправлять cookies ? mitiya Общие вопросы Javascript 3 18.11.2012 16:57
Размер cookies в IE9 или альтернатива cookies? JDev Общие вопросы Javascript 23 07.08.2012 18:03
проверка отсутствия всех cookies legrol Общие вопросы Javascript 0 30.03.2012 11:38
Про использование cookies zloctb Общие вопросы Javascript 3 11.02.2012 09:36
Создание cookies cyberx Общие вопросы Javascript 3 22.03.2010 21:59