Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Размер cookies в IE9 или альтернатива cookies? (https://javascript.ru/forum/misc/30528-razmer-cookies-v-ie9-ili-alternativa-cookies.html)

JDev 07.08.2012 16:07

Размер cookies в IE9 или альтернатива cookies?
 
Здравствуйте, может кто знает, слышал, я не могу найти информации на данную тему.

Коротко суть проблемы.

Сам не видел, но сказали, что в спецификации IE9 размер cookies не ограничен. Лично не читал - говорили.

Из сервера клиенту передается большой map. Проблема в том, что если в IE9 появляется кукис больше 10 кб, он начинает себя странно вести. Значение устанавливается в NONE, добавить новые или прочитать старые кукисы невозможно.

Кто что знает по данному вопросу? Спасибо.

Может кто предложит альтернативу?

devote 07.08.2012 16:10

Цитата:

Сообщение от JDev
Может кто предложит альтернативу?

localStorage

mullih 07.08.2012 16:12

альтернатива не гонять такие куки, а ка вариант скешировать данные в js файлах или в html в hidden полях а в куках хэш код иметь

PS лично мое мнение, мы злоупотребляете куками и их прямому предназначению исходя из вашего описания

Deff 07.08.2012 16:13

Цитата:

Сообщение от JDev
Из сервера клиенту передается большой map. Проблема в том, что если в IE9 появляется кукис больше 10 кб, он начинает себя странно вести. Значение устанавливается в NONE, добавить новые или прочитать старые кукисы невозможно.

Вообще есть пакеры - воть к примеру => http://javascript.ru/forum/misc/2931...tml#post186177
2.-е есть LocalStorage

JDev 07.08.2012 16:23

о licalStorage и о пакерах сейчас почитаю, спасибо.
просто фишка в том, что с помощью кукисов пользователь обмениавается информацией с сервером не разово, а постоянно. Может вы это и имели ввиду, а я не корректно понял, но я все таки объясню, чтоб вы могли подсказать поконкретней.
Есть некая диаграмма, на ней перод приместим так в лет 5, где изображен точкой каждый час, при увеличении к определенному периоду, например 3 дня. сервер посылает map с toolTip к каждой точке. тоисть если точек много, то происходит вот такая вот беда.
Все генерится динамически, в зависимости от желания пользователя.

Deff 07.08.2012 16:29

JDev,
Вы бы ужали в пакере максимальный вариант - если не проходит до 4-5кб с куками да не связывайтесь
localStorage туть > http://javascript.ru/forum/project/2...a-ie6-7-a.html (*кроссбраузерно - не смотря на название

mullih 07.08.2012 16:30

а зачем эти данные через куку отправлять?

это ведь можно сделать или через аякс либо сгенерировать таблицу для конкретного запроса и положить эту js таблицу в html, и по необходимости работать с данными на клиенте

JDev 07.08.2012 16:36

Цитата:

Сообщение от Deff (Сообщение 195339)
JDev,
Вы бы ужали в пакере максимальный вариант - если не проходит до 4-5кб с куками да не связывайтесь
localStorage туть > http://javascript.ru/forum/project/2...a-ie6-7-a.html (*кроссбраузерно - не смотря на название

А не могли бы вы в двух словах, своими словами, что это рассказать?

JDev 07.08.2012 16:40

Цитата:

Сообщение от mullih (Сообщение 195340)
а зачем эти данные через куку отправлять?

это ведь можно сделать или через аякс либо сгенерировать таблицу для конкретного запроса и положить эту js таблицу в html, и по необходимости работать с данными на клиенте

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

Deff 07.08.2012 16:44

Цитата:

Сообщение от JDev
А не могли бы вы в двух словах, своими словами, что это рассказать?

1.Там по 1-й ссылке - Демка -всуньте свой текст - скажите скок получилось на выходе, после ужатия
2. Вторая ссылка тож с примером в первом сообщении - воткните свои данные - перезагрузите страницу - если всё ок - будет интерес продолжить

JDev 07.08.2012 16:52

только что почитал что есть localstorage.
Думаю, что оно мне не подойдет.
- диаграмма генерируется на основании входящих данных - 1 http запрос.
- потом клиент работает с этой диаграммой, каждый раз при любой манипуляции отсылает серверу данные, сервер проверяет необходимые параметры.
- если достигнут неоходимый параметр, на основании сгенерированной диаграммы генерирует map.
- после генерации map - если происходит опять запрос, опять же генерится сл map и так д.. пока не будет произведена перезагрузка страницы.
Вот.. как-то так.. если в кратце.

mullih 07.08.2012 16:55

а два запроса паралельных на сервер сделать и синхронизровать на клиенте?

или картинку динамически загрузить через img.src=dinamic_link и на событие загрузки картинки забрать данные?

или одним запросом забрать base64 картинки и данные к нему xml ем к примеру?

JDev 07.08.2012 16:55

Deff - на счет пакера идея хорошая, просто компресить нужно будет на яве, а декомпресить на яваскрипте.
Еще есть идея написать свого рода парсер.
Сейчас есть строка

<area shape="poly" coords="775,181,781,181,781,187,775,187,775,181,77 5,181" title="Line1: (11.12.01 11:00, 27,899)" alt="" nohref="nohref"/>
можно ее сократить до такого вида и передавать только необходимое, тоисть "775,181,781,181,781,187,775,187,775,181,775,1 81" и "11.12.01 11:00, 27,899"
что нам дает приблизительно - 40-50%.

JDev 07.08.2012 17:03

Цитата:

Сообщение от mullih (Сообщение 195355)
а два запроса паралельных на сервер сделать и синхронизровать на клиенте?

или картинку динамически загрузить через img.src=dinamic_link и на событие загрузки картинки забрать данные?

или одним запросом забрать base64 картинки и данные к нему xml ем к примеру?

1. чуток не так, так как мне нужно получить с сервера 2 параллельных ответа.
2. в принципе идея, нужно будет поглядеть в эту сторону
3. может сейчас не правиль что-то скажу, но сервлет (jfreechart) генерирует вот такой код.

Код:

ChartUtilities.writeChartAsPNG(baos, chart, chartParams.getChartWidth(), chartParams.getChartHeight(), info);

                        setChartParams(info, chartParams);
                        setCookie(requestParams.getCookieName(), response, info, chartParams);

                        outputStream.write(baos.toByteArray());
                        outputStream.flush();

Все, и чтоб получить картинку, в outputStream можно только посылать массив байт в которых есть картинко и больше ничего.

mullih 07.08.2012 17:17

тк это жаба а я дот нетчик то поробую найти общий язык

//могу предположить что baos картинка
string img = string.ToBase64String(baos.toByteArray());

string result = "<data><img>" + img + "</img>";
result += "<params>"

foreach(var p in /*IEnumerable<Param>*/)
{
result += "<param>" + p.p1 + "</param>";
}

result += "</params></data>"

//добавить в Response.Header что данные xml по необходимости

outputStream.write(result.toByteArray());
outputStream.flush();


код не компилируем тк я передавал лишь идею

JDev 07.08.2012 17:34

mullih - приблизительно понял, о чем вы.
Только я уже пробовал добавить какие-то данные в outputStream, в итоге ошибка. но нужно еще посмотреть, что такое ToBase64String и как оно выглядит в яве.

JDev 07.08.2012 17:35

И еще для уточнения ситуации с local-storage
Я кукисы использую для передачи информации, и каждый раз она разная, тоисть при каждом http или ajax запросе в кукисы пишется что-то другое.
Могу передавать с сервера инфу только так, потому, что в response от servlet пишется только картинка и больше ничего в ответ запихнуть нельзя.
серверная сторона java-servlet + JfreeChart, клиентская в ExtJs завернут плагин jQuery.
Должно поддерживаться в IE 7,8,9 на счет 6 не знаю.
Я вот только не могу понять, в чем преимущество local-storage в моем случае....
По моему оно мне никак не подходит.

mullih 07.08.2012 17:37

поидее вам еще надо задать размер в header потока в байтах

devote 07.08.2012 17:41

Цитата:

Сообщение от JDev
По моему оно мне никак не подходит.

почитайте внимательнее о localStorage и возможно передумаете, он дает возможность хранить большие объемы информации. А передачу на сервер данных можно организовать через аякс, и не надо говорить что это не возможно. Возможно все, просто нужно на стороне сервера для этого подготовить все нужное.

JDev 07.08.2012 17:43

Цитата:

Сообщение от mullih (Сообщение 195387)
поидее вам еще надо задать размер в header потока в байтах

Нужно почитать, а то я мало что понимаю о чем вы, догадываюсь, у response есть соответственные функции. Ну и с названия можно догадаться о чем, но все равно. :)

JDev 07.08.2012 17:46

Цитата:

Сообщение от devote (Сообщение 195390)
почитайте внимательнее о localStorage и возможно передумаете, он дает возможность хранить большие объемы информации. А передачу на сервер данных можно организовать через аякс, и не надо говорить что это не возможно. Возможно все, просто нужно на стороне сервера для этого подготовить все нужное.

почитал вроде внимательно, даже 2 раза перечитал.
- мне информацию хранить не нужно. как я писал, при каждом http, ajax запросе, инфа пересчитывается сервером, и отправляеет соответв. данные клиенту. Тоисть мне нужно из сервера передавать большой кусок.

devote 07.08.2012 17:57

Цитата:

Сообщение от JDev
Тоисть мне нужно из сервера передавать большой кусок.

аякс, чем же он не годится?

JDev 07.08.2012 18:02

Цитата:

Сообщение от devote (Сообщение 195396)
аякс, чем же он не годится?

вот поэтому..
Код:

response.setContentType("image/png");

JDev 07.08.2012 18:03

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


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