preload preload

}{ранить или нет данные в cookies

Некоторое время мне не давала покоя идея о том, как хранить достаточно большие объемы данных на стороне клиента. Необходимость этого выросла из идеи создания единожды закачиваемых и далее хранимых у клиента скриптов, дабы не тягать их постоянно с сервера, скажем для того же визуального редактора или библиотеки типа Prototype / jQuery.

И единственным решением виделись “печенюшки” (cookies), механизм работы с которыми через Javascript существует, поэтому вариант вполне рабочий. Однако как хранить большие данные в кукисах, если максимальный размер их не должен превышать 4 кб? Разбить на массив? Можно, и это был бы единственный выход. Но тут всплывает главный подводный камень - все, что вы сохраните в кукисах будет каждый раз передаваться на сервер. Мда… Такой вариант автоматически отпадает.

А отчего же не использовать механизмы кэширования с отдачей “правильных” заголовков клиенту? - спросите вы, и будете правы. Отвечу:

  • Мне необходимо иметь возможность самому регулировать изменились ли данные, или нет.
  • Часто браузеры не реагируют даже на правильные заголовки, не говоря уже о принудительной перезагрузке, когда все, что даже было закэшировано, принимается с сервера заново. А при работе с сайтом, приходится нажимать на кнопку “Куакуыр” (”Refresh” - неплохой перевод от Punto Switcher =) ) постоянно. И вот здесь то уже и хотелось бы уметь отфильтровывать - что мне надо перегружать, а что нет.

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

Превосходное решение, имеющее лишь одно ограничение - пока (?) нет расширения для моего любимого браузера Opera =( Что-ж… Будем надеяться и ждать…

Кстати уже начинают появляться и инструменты для работы с Gears, например недавно вышла примочка, написанная на Flex (технология от Adobe), для управления базой данных Gears. правда у меня в седьмом эксплорере она развалилась…

  • 6 responses to "}{ранить или нет данные в cookies"

  • Sergey Trofimov
    20:41 on June 5th, 2007

    По поводу куков. Чем не устраивает механизм сессий, если сделать их перманентными (или аналог, если обычные сессии не получается сделать сохранять на произвольно заданный промежуток времени)?

    offtop. А в чём прикол такого написания буквы «Х»? Вот такие мы загадочные ;-)?

  • admin
    21:19 on June 5th, 2007

    Данные сессии также будут передаваться с сервера. А это тот самый траффик от которого хочется уйти…

    Букву “Х” так захотелось написать потому, что это “компьютерно-сленговый” вариант из “Хоттабыча”. Рекомендую, кстати, к просмотру упомянутый к.ф.!

  • Sergey Trofimov
    8:31 on June 9th, 2007

    Для сессии передаётся небольшой блок данных о самой сессии (фиксированного размера). Или ты хочешь уйти вообще от всякого трафика?

  • admin
    10:19 on June 9th, 2007

    Да, но данные сессии то с сервера передаются в этом случае в полном объеме. Хочу уйти от трафика.

    Например: мы заводим сессию и сохраняем в ней полметра данных. Клиент каждый раз из кукисов или с запросом нам возвращает идентификатор сессии. В ответ мы ему возвращаем все полметра данных. если же мы будем пользовать Gears, то все полметра останутся у клиента.

  • Sergey Trofimov
    8:41 on June 12th, 2007

    Что, правда что ли данные сессии перегоняются на клиента? Я думал, что сессия — чисто server-side понятие. Прям хоть тесты проводи 8-)

  • admin
    12:51 on June 13th, 2007

    Думал правильно! Тока вот когда клиент по своей сессии от раза к разу загребает полметра скриптов - нехорошо. Особливо для разработчика, который сидит и обновляет свою страницу, и обновляет…

    Также хорошим решением, подсказанным тобой, действительно будет защита от потери заполнения данными формы или коммента / поста… Вернулся после неудачи (браузер слетел, жена браузер закрыла, питание вырубили) - а браузер тебе - мол вот, у меня тут текст небольшой завалялся, нужен еще, нет?