Комментарии 135
>>Замечательная особенность window.name в том, что это значение сохраняется между загрузками страниц
Млин, век живи, век учись :-)
Спасибо за перевод.
Млин, век живи, век учись :-)
Спасибо за перевод.
оригинально, но имхо, хранить на клиенте или постоянно передавать под 2 мб данных - это бессовестно. Максимум хранить пару-тройку флагов, с чем прекрасно справляются и куки.
Фишка в том, что эти данные не передаются никуда - они хранятся локально для использования клиентскими скриптами и никогда не будут переданы серверу, поэтому в трафик вопрос не упирается.
А занять 2 Мб памяти при нынешних ее объемах вполне допустимо при необходимости, и это лучше, чем занимать ее на сервере.
А занять 2 Мб памяти при нынешних ее объемах вполне допустимо при необходимости, и это лучше, чем занимать ее на сервере.
У вас просто не было такой объективной задачи никогда.
Интересно. Нажмука +! авось пригодится.
2МБ это конечно хорошо, но как эти данные получить на стороне сервера? Это что получается куки "только для клиента"? Доступ к ним имеет только джаваскрипт, где это пригодится, для чего это применяется?
Случаи из практики:
- Админка интернет магазина реализована без полной перезагрузки страниц (все подгружается асинхронными запросами, или в скрытый фрейм, если передаются файлы). Вот тут интересно хранить последнее состояние развернутого дерева заказов, состояние предыдущих вкладок и т.п., что бы пользователь вернувшись обратно видел все как и было раньше...
- Админка интернет магазина реализована без полной перезагрузки страниц (все подгружается асинхронными запросами, или в скрытый фрейм, если передаются файлы). Вот тут интересно хранить последнее состояние развернутого дерева заказов, состояние предыдущих вкладок и т.п., что бы пользователь вернувшись обратно видел все как и было раньше...
Если полной перезагрузки нет, то эта штука как бы и не нужна. Она позволяет сохранять данные между полными перезагрузками, а без перезагрузки и так все прекрасно сохраняется.
Это решение не для простых утилитарных скриптов, а для яваскрипт-приложений. Там обмен осуществляется асинхронно каким угодно образом, и куки далеко не самый удобный вариант обмена.
По сути, куки объединяет в себе 2 цели, которые по уму надо разделять - данные состояния и данные обмена. Вот для хранения состояния и предназначены sessvars, а обменом скрипт должен заниматься самостоятельно, передавай аяксом то, что нужно передать - а не целиком все данные состояния.
По сути, куки объединяет в себе 2 цели, которые по уму надо разделять - данные состояния и данные обмена. Вот для хранения состояния и предназначены sessvars, а обменом скрипт должен заниматься самостоятельно, передавай аяксом то, что нужно передать - а не целиком все данные состояния.
я применил данный подход в реализации алгоритма прямых АЯКС ссылок
Послать на сервер аяксом?
1) Один приличный минус - браузер закрыли и привет.
2) Согласен с тем что в куках и не надо хранить столько. В 90% случаях там весит пару строк или вообще одна - ид сессии, а все остальное уже хранится на сервере.
Но идея оригинальная, жаль еще нуб для плюсования =)
2) Согласен с тем что в куках и не надо хранить столько. В 90% случаях там весит пару строк или вообще одна - ид сессии, а все остальное уже хранится на сервере.
Но идея оригинальная, жаль еще нуб для плюсования =)
>> Один приличный минус - браузер закрыли и привет
это не минус, т.к. сессии на то и сессии чтобы хранится до закрытия браузера (в большинстве случаев)
это не минус, т.к. сессии на то и сессии чтобы хранится до закрытия браузера (в большинстве случаев)
не совсем так, имхо, не зря ж в куках есть время жизни. Кроме того нужен механизм восстановления сессии.
Ну а вообще я высказался, имхо, на клиенте нужно хранить миниум инфы.
Ну а вообще я высказался, имхо, на клиенте нужно хранить миниум инфы.
Если уж 2 мб, то хранить их и пригодилось бы, но в большинстве случаев - большОе время. А тут до закрытия. Интересно, но не практично имхо.
НЛО прилетело и опубликовало эту надпись здесь
А как? Сессионные переменные?
Все было правильно, не обращай внимания на глупости.
НЛО прилетело и опубликовало эту надпись здесь
Не въехал в камент.
Что есть кастрированное хранение переменных? Мне кажется, вариант Томаса Франка самый что ни на есть полноценный - полноценнее кук это уж точно, потому что используется для хранения (для чего и предназначаются сессии), а не для обмена.
Что есть кастрированное хранение переменных? Мне кажется, вариант Томаса Франка самый что ни на есть полноценный - полноценнее кук это уж точно, потому что используется для хранения (для чего и предназначаются сессии), а не для обмена.
"Сессия" для начала не по-русски . "Сеанс" лучше.
Я надеюсь, вы не употребляете в речи слова "шампунь", "индустрия", "прогресс", "пиджак", не говоря уже о "компьютер" и "файл"?
«Индустрия» употребляю редко, предпочитаю «промышленность. Речь шла не о происхождении слова, а об осмысленном переводе в противоположность кальке, каковой является слово „сессия“ в данном контексте.
СЕССИЯ, ж:
СЕССИЯ, ж:
- Заседания представительного органа или коллегиального учреждения, происходящие периодически. // Период таких заседаний.
- Экзамены в высших и средних учебных заведениях. // Период таких экзаменов.
Мы же тут ИТ-шники, зачем вам правильный литературный перевод с русскими аналогами?
Как по мне, то "кальки" в переводах программерских статей (да и остальных относящихся к ИТ) позволяет многим людям думать одинаково, и потом не приходится догадываться что же автор нам как бы хотел сказать этим.
Как по мне, то "кальки" в переводах программерских статей (да и остальных относящихся к ИТ) позволяет многим людям думать одинаково, и потом не приходится догадываться что же автор нам как бы хотел сказать этим.
Мы же тут ИТ-шники, зачем вам правильный литературный перевод с русскими аналогами?
Хорошо, что айтишники, а не экологи, например, а то бы "pollution" переводили как "поллюция".
Специалист должен владеть терминологией на своём языке. К тому же данная статья переводом не является. Для меня слово "сессия" почти ничего общего со словом "session" не имеет. Слова "компьютер" и "файл" давно вошли в словари, и значение их бесспорно. Значение же слова "сессия", согласно грамоте.ру, требуемого смысла не содержит.
Может и можно использовать кальки и не очень правильные термины в не очень формальном контексте, например в коментах (как я сейчас употребил слово "комент"), но в топике, ИММО, это неуместно. Да ещё и вынесенное в тэги.
Сессия - продолжительный период чего-либо. Если придерживаться вашим формальным определением, то теряют значение словосочетания "сессия у стоматолога", "сессия медитации".
То, что для вас слово "сессия" применительно к программированию ничего общего со словом session не имеет - исключительно ваша личная проблема. Поищите в интернете слово "сессия" - добрую половину будет занимать именно различный материал по работе с теми самими session из топика. Если бы я переводил как "сеанс", то меня бы просто не поняли.
ЗЫ Не стоит всегда и везде махать при любой возможности словарями. Люди называют это фарисейством.
То, что для вас слово "сессия" применительно к программированию ничего общего со словом session не имеет - исключительно ваша личная проблема. Поищите в интернете слово "сессия" - добрую половину будет занимать именно различный материал по работе с теми самими session из топика. Если бы я переводил как "сеанс", то меня бы просто не поняли.
ЗЫ Не стоит всегда и везде махать при любой возможности словарями. Люди называют это фарисейством.
> Специалист должен владеть терминологией на своём языке.
Я когда-то ставил себе русскую версию Photoshop и видел 3dsmax. Это просто жопа (да, не литературное слово). Но переведено было все вроде бы и правильно. Поэтому с терминологией на родном языке в области IT я с вами не согласен.
Я когда-то ставил себе русскую версию Photoshop и видел 3dsmax. Это просто жопа (да, не литературное слово). Но переведено было все вроде бы и правильно. Поэтому с терминологией на родном языке в области IT я с вами не согласен.
критикуя предлагай
увидел 4
eval
в коде закрыл и больше не открывалК сожалению, при таком подходе вам придется "закрыть и больше не открыть" такие вещи как prototype, jquery и даже json.
:) на 93Кб кода в jQuery
Если кто-то может мне компетентно пояснить, почему
eval
встречается только 2 раза. Я не думаю, что Ваш довод при таком раскладе можно считать уместным.Если кто-то может мне компетентно пояснить, почему
eval
стал считаться признаком хорошего программирования я с радостью прооппонируюКак в яваскрипте установить, скажем, значение произвольному ключу в хэше, не используя eval?
:) я бы начал с того, зачем вам менять "произвольный" ключ в хеше почему нельзя обратиться по определенному?
Потом можно попробовать перебрать массив и собрать обратно, затем сравнить с
Потом можно поискать, что придумало прогрессивное человечество на эту тему, например, почитав John Resig про "замену и поиск без использования RegExp"
http://ejohn.org/blog/search-and-dont-re…
В общем, если у Вас есть конкретная задача я готов обеспечить benchmark'и для различных ее решений
Потом можно попробовать перебрать массив и собрать обратно, затем сравнить с
eval
Потом можно поискать, что придумало прогрессивное человечество на эту тему, например, почитав John Resig про "замену и поиск без использования RegExp"
http://ejohn.org/blog/search-and-dont-re…
В общем, если у Вас есть конкретная задача я готов обеспечить benchmark'и для различных ее решений
Код на php:
$key = 'somekey';
$hash[$key] = $someval;
Зачем придумывать потрясающие ноухау, чтобы сделать это на яваскрипте, когда можно просто:
var key = 'someval';
var hash = Object();
eval('hash.'+key+' = someval;');
$key = 'somekey';
$hash[$key] = $someval;
Зачем придумывать потрясающие ноухау, чтобы сделать это на яваскрипте, когда можно просто:
var key = 'someval';
var hash = Object();
eval('hash.'+key+' = someval;');
потому что на клиенте это будет несколько тормозить :) Если это несколько помножить на число вызовов, то можно получить вполне реальная мс и с. Не более того.
Я не знаю реализации php, но на JavaScript этот код тормозит. Достаточно просто использовать другую структуру, например:
Я не знаю реализации php, но на JavaScript этот код тормозит. Достаточно просто использовать другую структуру, например:
var hash = new Object();
var hash.keys = new Array();
hash.keys{key} = someval;
Эм, а вы с перлом не спутали? Что это за конструкция "hash.keys{key}"? Нет в яваскрипте адресуемых хэшей. Если бы была возможна такая запись, то не было миллиона эмуляций хэшей с произвольным ключом.
бесконечно извиняюсь, что не проверил:
var hash=new Object(),val='mykey';
hash.keys=new Array();
hash.keys[val]='myval';
alert(hash.keys[val]);
Такой подход плох вот этим:
var hash=new Object(),val='mykey';
hash.keys=new Array();
hash.keys[val]='myval';
alert(hash.keys.length); // 0?
Во-первых, зачем вообще нужен массив hash.keys, если в JS можно обращаться к свойствам объекта как к элементам массива?
var hash = { index: 100 };
alert( hash['index'] ); // 100
i=100 && alert( hash[i] ); // 100
Во-вторых, почему hash.keys.length==0?
length - динамическое свойство, меняется по мере добавления/удаления свойств.
var hash = { index: 100 };
alert( hash['index'] ); // 100
i=100 && alert( hash[i] ); // 100
Во-вторых, почему hash.keys.length==0?
length - динамическое свойство, меняется по мере добавления/удаления свойств.
Во-первых, читайте внимательней - hash это не Object, а Array.
Во-вторых, http://habrahabr.ru/blog/webdev/42627.ht…
Во-вторых, http://habrahabr.ru/blog/webdev/42627.ht…
хэш это как раз объект.
Не хэш вообще, а переменная под именем hash из примера выше.
именно.
{} - объект. У него нет свойства length
{} - объект. У него нет свойства length
Верно, опечатался.
Не hash, а hash.keys, который Array. Length у него смотрим.
Не hash, а hash.keys, который Array. Length у него смотрим.
я не понял. При чем тут длина? И зачем нужен отдельно массив? У массива, кстати, длина не растет совершенно обоснованно. Потому что массив это массив. Он не хэш. Он не умеет включать в себя произвольные ключи.
аналогом вашего кода
var key = 'someval';
var hash = Object();
eval('hash.'+key+' = someval;');
будет следующий код:
var key = 'someval';
var hash = Object();
hash[key] = someval;
При чем тут длина массивов? и зачем они вообще нужны?
аналогом вашего кода
var key = 'someval';
var hash = Object();
eval('hash.'+key+' = someval;');
будет следующий код:
var key = 'someval';
var hash = Object();
hash[key] = someval;
При чем тут длина массивов? и зачем они вообще нужны?
+1
В данном случае перловый термин "хэш" и JS-ный термин "объект" имеют один смысл. А "массив" реализован по-другому. И кстати имхо такая реализация намного грамотнее и логичнее, чем у того же РНР, где всё в одну кучу.
В данном случае перловый термин "хэш" и JS-ный термин "объект" имеют один смысл. А "массив" реализован по-другому. И кстати имхо такая реализация намного грамотнее и логичнее, чем у того же РНР, где всё в одну кучу.
Задайте этот вопрос тов. sunnybear, это был его комментарий
Бред, зачем создавать объект типа Array, если ты потом пытаешься использовать его как обычный Object? Array на то и Array, что бы индексы целочисленные были, твой же пример, только если по логике:
var hash=new Object(), val=1;
hash.keys=new Array();
hash.keys[val]='myval';
alert(hash.keys.length); // 2!!
var hash=new Object(), val=1;
hash.keys=new Array();
hash.keys[val]='myval';
alert(hash.keys.length); // 2!!
alert(hash.keys.length); // 2!!
Хм? :)
С объектами такое возможно, но зато нельзя использовать вещи типа every, map, filter и т.д.
Хм? :)
С объектами такое возможно, но зато нельзя использовать вещи типа every, map, filter и т.д.
Читай внимательнее, я использовал не Object вместо Array, а нормальный для Array, целочисленный ключ val=1. Свойство массива length, как и методы map, filter, и пр. учитывают только целочисленные ключи. А в твоем первом примере eval не нужен ну вообще никак. Последняя строчка заменяется на нормальную
hash[key] = someval;
и при этом, так же как и твоя, не работает, т.к. переменная someval не определена. В общем учи матчасть ;)
hash[key] = someval;
и при этом, так же как и твоя, не работает, т.к. переменная someval не определена. В общем учи матчасть ;)
Ну раз уже мы с тобой чокнулись и поцеловались, то покури, братан, вот эту ссылку http://blog.mootools.net/2007/10/8/what-…
Ну и?.. Я неплохо знаю библиотеку MooTools, т.к. она моя предпочитаемая. Я отлично знаю что в ней реализован объект Hash - обёртка над классом Object, который, как там и написано, организует сходные с объектом Array методы, только для ключей произвольного типа. Так вот там (в случае использования MooTools), в это сложно поверить, но тоже можно без eval обойтись:
var key = 'hash_key';
var hash = new Hash();
hash.set(key, value);
//или опять же
hash[key] = value;
Так когда же девушка из торта вылезет?
Ну а коль обращение к Вам на "Вы" поднимает Вашу самооценку, без проблем, я в любой момент готов принести свои извенения за моё панибратство. Меня, в свою очередь, можете продолжать называть на "ты", это ни коим образом не ущимляет мою гордость.
var key = 'hash_key';
var hash = new Hash();
hash.set(key, value);
//или опять же
hash[key] = value;
Так когда же девушка из торта вылезет?
Ну а коль обращение к Вам на "Вы" поднимает Вашу самооценку, без проблем, я в любой момент готов принести свои извенения за моё панибратство. Меня, в свою очередь, можете продолжать называть на "ты", это ни коим образом не ущимляет мою гордость.
Да ну?
Это Вы так считаете или у Вас есть доказательства?
У ЛЮБОГО объекта в JS есть свойство length.
2 artch:
var hash=new Object() - это вы Array-ем называете?
(Сорри, раз в 5 минут ответы писать ОЧЕНЬ неудобно.)
Это Вы так считаете или у Вас есть доказательства?
У ЛЮБОГО объекта в JS есть свойство length.
2 artch:
var hash=new Object() - это вы Array-ем называете?
(Сорри, раз в 5 минут ответы писать ОЧЕНЬ неудобно.)
Конечно евал тормозит. Вообще давно пора в браузерах писать на АссемблерСкрипте. Или на смеси непонятно чего непонятно с каким перлом.
>> var hash.keys = new Array();
В JS нельзя объявить var Object.variable !!! только var variable.
Зачем писать
>> var hash = new Object();
>> var array = new Array();
если можно писать:
var a = {};
var b = [];
Ведь первое тоже тормозит! =)))
>> var hash.keys = new Array();
В JS нельзя объявить var Object.variable !!! только var variable.
Зачем писать
>> var hash = new Object();
>> var array = new Array();
если можно писать:
var a = {};
var b = [];
Ведь первое тоже тормозит! =)))
>> Зачем придумывать потрясающие ноухау, чтобы сделать это на яваскрипте, когда можно просто:
А зачем Вы придумали евал? :)
var key = 'someval';
var hash = { 'someval' : 10 };
alert( hash[key] );
// output: 10
А зачем Вы придумали евал? :)
var key = 'someval';
var hash = { 'someval' : 10 };
alert( hash[key] );
// output: 10
Здорово! Только проблема заключается в том, что мы вообще-то не знаем значения key.
в вашем-же примере у key значение есть
hash[key]
эээ... а чем вариант с hash[key]=key не подходит?
В вашем примере не нужен eval.
var x = {};
var mem = 'member_name';
x[mem] = 'string';
В своем проекте использовал евал только в одном особо извращенном случае, когда мне надо было вызвать функцию, о которой известно только ее имя в текстовом виде, плюс еще вернуть ее значение.
сделал так потому что спешил, потом переделал нормально, чтобы последователи не сломали себе моск и мне руки =)
var x = {};
var mem = 'member_name';
x[mem] = 'string';
В своем проекте использовал евал только в одном особо извращенном случае, когда мне надо было вызвать функцию, о которой известно только ее имя в текстовом виде, плюс еще вернуть ее значение.
сделал так потому что спешил, потом переделал нормально, чтобы последователи не сломали себе моск и мне руки =)
Код на php:
$key = 'somekey';
$hash[$key] = $someval;
А что вам мешает написать то же самое на js?
Вы можете сказать когда он стал достаточным признаком плохого программирования?
Вы немного перевираете. Он не является признаком плохого программирования. Его отсутствие является признаком хорошего :)
Про
http://www.julienlecomte.net/blog/
http://webo.in/articles/habrahabr/23-hig…
команду из Yahoo!
http://developer.yahoo.com/performance/r…
и даже Dean Edwards
http://clientside.cnet.com/best-practice…
Про
eval
можно почитать, например, Lecomptehttp://www.julienlecomte.net/blog/
http://webo.in/articles/habrahabr/23-hig…
команду из Yahoo!
http://developer.yahoo.com/performance/r…
и даже Dean Edwards
http://clientside.cnet.com/best-practice…
Я не нуб :)
Кстати, вы тоже перевираете. Отсутствие eval является необходимым или достаточным признаком хорошего программирования?
По мне — не тем и не другим.
По мне — не тем и не другим.
признак не может быть ни необходимым, ни достаточным. Это только условия таковыми являются. Я предельно четко все сформулировал :)
Да, позабыл, что признак — достаточное условие. Тем не менее. Наличие и отсутствие eval ни о чём однозначно не говорит. И уж тем более, отсутствие eval не является признаком (достаточным условием) для хорошего программирования. Это не так.
а как json разбирать без eval()?
какая интересная точка зрения. вы знаете что такое javascript?
Давайте посмотрим как вы решите задачу декодирования JSON без eval (нет, я не говорю, что невозможно, но это будет сильно и, главное, неоправданно сложнее).
var json="{'test1':'1','test2':'2'}"
var obj = new Function("","return " + json);
var result = obj();
почти без евала :Р
var obj = new Function("","return " + json);
var result = obj();
почти без евала :Р
http://www.JSON.org/js.html
Это оправданно. Eval is evil.
Это оправданно. Eval is evil.
Расскажите мне почему это оправдано? Данные поступают с сервера, с которого приходит frontend. Значит — дружественного по-умолчанию. Безопасность данных можно гарантировать функцией на сервере.
О! Начали минусовать. Ребят, eval — это не какой-то признак плохого программирования, просто часто использование eval неоправданно, но есть вещи, где он нужен. В JavaScript самый сильный пример — декодированние JSON.
я бы сказал, что это единственный сильный пример. Только в этом случае я с Вами соглашусь :)
Это единственный пример, который сразу приходит в голову. Но бывают ограничения языка, где применить eval проще и не менее безопасно (например, в случаях, когда внешние данные туда попасть не могут).
За 10 лет занятия вебом я видел несколько разных оправданных случаев использования eval в JS и PHP (в Perl не видел, кстати).
За 10 лет занятия вебом я видел несколько разных оправданных случаев использования eval в JS и PHP (в Perl не видел, кстати).
я, собственно, и хотел сказать, что оправданных случаев его использования бесконечно мало. В данной библиотеке, по моему скромному мнению, ему не место.
В Perl через eval реализуется поддержка исключений. Дело в том, что в Perl eval не обязательно используется для выполнения текстовой строки как код, он отлично выполняет обычные блоки кода - что нужно и для исключений, и для таймаутов, etc.
А выполнение текстовых строк через eval - это обычно используется или для реализации shell на perl, или для восстановления структур данных после Data::Dumper (а-ля пример с JSON). Больше ничего в голову действительно не приходит.
А выполнение текстовых строк через eval - это обычно используется или для реализации shell на perl, или для восстановления структур данных после Data::Dumper (а-ля пример с JSON). Больше ничего в голову действительно не приходит.
Да, точно, надо же как позабыл язык. Eval там очень широко использовался :)
Метод интересный, но с практической стороны, ИМХО, непрактичный: закрытие окна или открытие любой ссылки в новой закладке приведут к потере данных.
Вобщем есть над чем поработать...
Вобщем есть над чем поработать...
Цитата:
sessvars.$.prefs.memlimit
По умолчанию - 2000
Указывает объем данных в Кб, разрешенный для хранения в sessvars. По умолчанию 2000 Кб, так как Opera 9.25 имеет ограничение чуть выше этого числа. У остальных браузеров (IE7.0, Firefox 1.5/2.0 и Safari 3.0) ограничение намного выше - 10 Мб не представляют сложности для этих браузеров.
Вопрос: А в Opera 9.5 какое ограничение этого параметра?
sessvars.$.prefs.memlimit
По умолчанию - 2000
Указывает объем данных в Кб, разрешенный для хранения в sessvars. По умолчанию 2000 Кб, так как Opera 9.25 имеет ограничение чуть выше этого числа. У остальных браузеров (IE7.0, Firefox 1.5/2.0 и Safari 3.0) ограничение намного выше - 10 Мб не представляют сложности для этих браузеров.
Вопрос: А в Opera 9.5 какое ограничение этого параметра?
А вы проверьте и нам расскажите.
дык проверь и расскажи нам :)
если ты в Опере, то прямо в адресной строке и проверь, делов-то :)
если ты в Опере, то прямо в адресной строке и проверь, делов-то :)
Нам написали о хорошей идеи. Реализацию можете писать сами, я например
на mootols использовал бы Json.toString и Json.evaluate.
По поводу ограничений, в Oper-е - указанного Вами ограничения нет,
(может в каких-то старых версиях есть, но мне про это не известно).
Поэтому значение видимо ограничивается размером ОЗУ клиента :).
на mootols использовал бы Json.toString и Json.evaluate.
По поводу ограничений, в Oper-е - указанного Вами ограничения нет,
(может в каких-то старых версиях есть, но мне про это не известно).
Поэтому значение видимо ограничивается размером ОЗУ клиента :).
НЛО прилетело и опубликовало эту надпись здесь
Ну вообщем прикольно, но все же я отделяю данные на сервер и минимальную информацию клиенту ))) Это более надежно на мой взгляд. Но тот кому надо сохранить большие данные, которые не требуют особой безопасности например, настрйки интрефейса и т.д., им в самый раз )))
НЛО прилетело и опубликовало эту надпись здесь
Костыль — да, есть недостатки — да, но чем вы можете это заменить, чтобы работало везде? User storage пока работает очень мало где.
Практически везде. Только по-разному. IE 5.0+ - behaviors, IE8 - globalStorage, FF 2+ - globalStorage, Safari 2+ - интерфейс к SQLite.
Opera? FF 1.5?
1. Поддержка FF 1.5 была прекращена производителем 29 мая 2007 года. Если кто-то за год поленился обновить версию это исключительно его личные проблемы. Пользователи FF ведь считаются существами разумными?
2. Opera действительно ничего из этого не поддерживает. В зависимости от важности функционала, реализуемого через storage, можно либо не делать ничего, либо, например, реализовать хранение данных на сервере.
Ну и главное:
3. "Работает очень мало где" это, мягко говоря, преувеличение.
2. Opera действительно ничего из этого не поддерживает. В зависимости от важности функционала, реализуемого через storage, можно либо не делать ничего, либо, например, реализовать хранение данных на сервере.
Ну и главное:
3. "Работает очень мало где" это, мягко говоря, преувеличение.
Я понимаю что не полноценный но кому-то так легче, иногда бывают случаи что блин надо хранить какие-то данные которые не влазиют в куки, тут спорный вопрос, но можно воспользоватся ))) Пускай юзают ведь кому-то от этого приятно )))
Что касается безопасности — не вижу никакой проблемы, всё тривиально: шифруйте top.name ключём, который будет прописан в javascript-е конкретного сайта. Тогда другой сайт доступ к сессионным данным чужого сайта не получит. Странно, что автор реализовал множество гибких настроек но не сделал эту простую и полезную фичу.
а если у пользователя отключен ява скрипт в браузере???
работать то не будет ((((
Да и ваще изварат имхо. Зачем изобретать велосипед, когда есть все готовое?
работать то не будет ((((
Да и ваще изварат имхо. Зачем изобретать велосипед, когда есть все готовое?
Спасибо за отличную идею!
НЛО прилетело и опубликовало эту надпись здесь
Сам пока не использовал, но кажется к месту (просто сейчас с доджо разбираюсь и запомнилось)
Imagine if web applications could store megabytes of data on the client-side, in the browser, both persistently and securely. No server needed.These are the goals of Dojo Storage
- (представьте что вы можете сохранять мегабайты данных безопасно и надолго. Для этого есть Dojo Storage)
http://dojotoolkit.org/book/dojo-book-0-…
Imagine if web applications could store megabytes of data on the client-side, in the browser, both persistently and securely. No server needed.These are the goals of Dojo Storage
- (представьте что вы можете сохранять мегабайты данных безопасно и надолго. Для этого есть Dojo Storage)
http://dojotoolkit.org/book/dojo-book-0-…
вот вам в помощь к разбирательству со Storage http://browserpersistence.ru/
Огромное спасибо! Не столько за библиотеку, сколько за идею. Настолько в тему попало, что даже представить сложно. У меня именно тот случай когда уперся в объем, при этом условия хранения данных в пределах одного окна/таба до закрытия с головой достаточно. В общем спасибо!
Действительно оригинальный способ. Таким макаром можно обойти тех у кого куки отключены. Но такие "куки" не увидит PHP но это тоже поправимо :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Переменные сессии на яваскрипте без кук