}{ранить или нет данные в cookies
Эта запись опубликована 5 июня, 2007, Вторник в 11:29в рубрике «Javascript».
Некоторое время мне не давала покоя идея о том, как хранить достаточно большие объемы данных на стороне клиента. Необходимость этого выросла из идеи создания единожды закачиваемых и далее хранимых у клиента скриптов, дабы не тягать их постоянно с сервера, скажем для того же визуального редактора или библиотеки типа Prototype / jQuery.
И единственным решением виделись “печенюшки” (cookies), механизм работы с которыми через Javascript существует, поэтому вариант вполне рабочий. Однако как хранить большие данные в кукисах, если максимальный размер их не должен превышать 4 кб? Разбить на массив? Можно, и это был бы единственный выход. Но тут всплывает главный подводный камень - все, что вы сохраните в кукисах будет каждый раз передаваться на сервер. Мда… Такой вариант автоматически отпадает.
А отчего же не использовать механизмы кэширования с отдачей “правильных” заголовков клиенту? - спросите вы, и будете правы. Отвечу:
- Мне необходимо иметь возможность самому регулировать изменились ли данные, или нет.
- Часто браузеры не реагируют даже на правильные заголовки, не говоря уже о принудительной перезагрузке, когда все, что даже было закэшировано, принимается с сервера заново. А при работе с сайтом, приходится нажимать на кнопку “Куакуыр” (”Refresh” - неплохой перевод от Punto Switcher =) ) постоянно. И вот здесь то уже и хотелось бы уметь отфильтровывать - что мне надо перегружать, а что нет.
И вот совсем уж нежданно-негаданно Google анонсировал замечательное решение этой проблемы: Google Gears. Это надстройка над браузерами IE и Firefox, обеспечивающая возможность хранения данных и проведения фоновых ресурсоемких вычислений на стороне клиента. Последний пункт мне также по душе, однако пока что не могу придумать дельного назначения этой возможности.
Превосходное решение, имеющее лишь одно ограничение - пока (?) нет расширения для моего любимого браузера Opera =( Что-ж… Будем надеяться и ждать…
Кстати уже начинают появляться и инструменты для работы с Gears, например недавно вышла примочка, написанная на Flex (технология от Adobe), для управления базой данных Gears. правда у меня в седьмом эксплорере она развалилась…

По поводу куков. Чем не устраивает механизм сессий, если сделать их перманентными (или аналог, если обычные сессии не получается сделать сохранять на произвольно заданный промежуток времени)?
offtop. А в чём прикол такого написания буквы «Х»? Вот такие мы загадочные ;-)?
Данные сессии также будут передаваться с сервера. А это тот самый траффик от которого хочется уйти…
Букву “Х” так захотелось написать потому, что это “компьютерно-сленговый” вариант из “Хоттабыча”. Рекомендую, кстати, к просмотру упомянутый к.ф.!
Для сессии передаётся небольшой блок данных о самой сессии (фиксированного размера). Или ты хочешь уйти вообще от всякого трафика?
Да, но данные сессии то с сервера передаются в этом случае в полном объеме. Хочу уйти от трафика.
Например: мы заводим сессию и сохраняем в ней полметра данных. Клиент каждый раз из кукисов или с запросом нам возвращает идентификатор сессии. В ответ мы ему возвращаем все полметра данных. если же мы будем пользовать Gears, то все полметра останутся у клиента.
Что, правда что ли данные сессии перегоняются на клиента? Я думал, что сессия — чисто server-side понятие. Прям хоть тесты проводи
Думал правильно! Тока вот когда клиент по своей сессии от раза к разу загребает полметра скриптов - нехорошо. Особливо для разработчика, который сидит и обновляет свою страницу, и обновляет…
Также хорошим решением, подсказанным тобой, действительно будет защита от потери заполнения данными формы или коммента / поста… Вернулся после неудачи (браузер слетел, жена браузер закрыла, питание вырубили) - а браузер тебе - мол вот, у меня тут текст небольшой завалялся, нужен еще, нет?