Comments 135
>>Замечательная особенность window.name в том, что это значение сохраняется между загрузками страниц
Млин, век живи, век учись :-)
Спасибо за перевод.
Млин, век живи, век учись :-)
Спасибо за перевод.
+5
оригинально, но имхо, хранить на клиенте или постоянно передавать под 2 мб данных - это бессовестно. Максимум хранить пару-тройку флагов, с чем прекрасно справляются и куки.
0
Фишка в том, что эти данные не передаются никуда - они хранятся локально для использования клиентскими скриптами и никогда не будут переданы серверу, поэтому в трафик вопрос не упирается.
А занять 2 Мб памяти при нынешних ее объемах вполне допустимо при необходимости, и это лучше, чем занимать ее на сервере.
А занять 2 Мб памяти при нынешних ее объемах вполне допустимо при необходимости, и это лучше, чем занимать ее на сервере.
+5
У вас просто не было такой объективной задачи никогда.
0
Интересно. Нажмука +! авось пригодится.
+1
2МБ это конечно хорошо, но как эти данные получить на стороне сервера? Это что получается куки "только для клиента"? Доступ к ним имеет только джаваскрипт, где это пригодится, для чего это применяется?
0
Случаи из практики:
- Админка интернет магазина реализована без полной перезагрузки страниц (все подгружается асинхронными запросами, или в скрытый фрейм, если передаются файлы). Вот тут интересно хранить последнее состояние развернутого дерева заказов, состояние предыдущих вкладок и т.п., что бы пользователь вернувшись обратно видел все как и было раньше...
- Админка интернет магазина реализована без полной перезагрузки страниц (все подгружается асинхронными запросами, или в скрытый фрейм, если передаются файлы). Вот тут интересно хранить последнее состояние развернутого дерева заказов, состояние предыдущих вкладок и т.п., что бы пользователь вернувшись обратно видел все как и было раньше...
0
Если полной перезагрузки нет, то эта штука как бы и не нужна. Она позволяет сохранять данные между полными перезагрузками, а без перезагрузки и так все прекрасно сохраняется.
0
Это решение не для простых утилитарных скриптов, а для яваскрипт-приложений. Там обмен осуществляется асинхронно каким угодно образом, и куки далеко не самый удобный вариант обмена.
По сути, куки объединяет в себе 2 цели, которые по уму надо разделять - данные состояния и данные обмена. Вот для хранения состояния и предназначены sessvars, а обменом скрипт должен заниматься самостоятельно, передавай аяксом то, что нужно передать - а не целиком все данные состояния.
По сути, куки объединяет в себе 2 цели, которые по уму надо разделять - данные состояния и данные обмена. Вот для хранения состояния и предназначены sessvars, а обменом скрипт должен заниматься самостоятельно, передавай аяксом то, что нужно передать - а не целиком все данные состояния.
0
я применил данный подход в реализации алгоритма прямых АЯКС ссылок
0
Послать на сервер аяксом?
0
1) Один приличный минус - браузер закрыли и привет.
2) Согласен с тем что в куках и не надо хранить столько. В 90% случаях там весит пару строк или вообще одна - ид сессии, а все остальное уже хранится на сервере.
Но идея оригинальная, жаль еще нуб для плюсования =)
2) Согласен с тем что в куках и не надо хранить столько. В 90% случаях там весит пару строк или вообще одна - ид сессии, а все остальное уже хранится на сервере.
Но идея оригинальная, жаль еще нуб для плюсования =)
+3
>> Один приличный минус - браузер закрыли и привет
это не минус, т.к. сессии на то и сессии чтобы хранится до закрытия браузера (в большинстве случаев)
это не минус, т.к. сессии на то и сессии чтобы хранится до закрытия браузера (в большинстве случаев)
0
не совсем так, имхо, не зря ж в куках есть время жизни. Кроме того нужен механизм восстановления сессии.
Ну а вообще я высказался, имхо, на клиенте нужно хранить миниум инфы.
Ну а вообще я высказался, имхо, на клиенте нужно хранить миниум инфы.
0
Если уж 2 мб, то хранить их и пригодилось бы, но в большинстве случаев - большОе время. А тут до закрытия. Интересно, но не практично имхо.
0
UFO just landed and posted this here
А как? Сессионные переменные?
0
Все было правильно, не обращай внимания на глупости.
0
UFO just landed and posted this here
"Сессия" для начала не по-русски . "Сеанс" лучше.
-1
Я надеюсь, вы не употребляете в речи слова "шампунь", "индустрия", "прогресс", "пиджак", не говоря уже о "компьютер" и "файл"?
0
«Индустрия» употребляю редко, предпочитаю «промышленность. Речь шла не о происхождении слова, а об осмысленном переводе в противоположность кальке, каковой является слово „сессия“ в данном контексте.
СЕССИЯ, ж:
СЕССИЯ, ж:
- Заседания представительного органа или коллегиального учреждения, происходящие периодически. // Период таких заседаний.
- Экзамены в высших и средних учебных заведениях. // Период таких экзаменов.
-1
Мы же тут ИТ-шники, зачем вам правильный литературный перевод с русскими аналогами?
Как по мне, то "кальки" в переводах программерских статей (да и остальных относящихся к ИТ) позволяет многим людям думать одинаково, и потом не приходится догадываться что же автор нам как бы хотел сказать этим.
Как по мне, то "кальки" в переводах программерских статей (да и остальных относящихся к ИТ) позволяет многим людям думать одинаково, и потом не приходится догадываться что же автор нам как бы хотел сказать этим.
0
Мы же тут ИТ-шники, зачем вам правильный литературный перевод с русскими аналогами?
Хорошо, что айтишники, а не экологи, например, а то бы "pollution" переводили как "поллюция".
Специалист должен владеть терминологией на своём языке. К тому же данная статья переводом не является. Для меня слово "сессия" почти ничего общего со словом "session" не имеет. Слова "компьютер" и "файл" давно вошли в словари, и значение их бесспорно. Значение же слова "сессия", согласно грамоте.ру, требуемого смысла не содержит.
Может и можно использовать кальки и не очень правильные термины в не очень формальном контексте, например в коментах (как я сейчас употребил слово "комент"), но в топике, ИММО, это неуместно. Да ещё и вынесенное в тэги.
0
Сессия - продолжительный период чего-либо. Если придерживаться вашим формальным определением, то теряют значение словосочетания "сессия у стоматолога", "сессия медитации".
То, что для вас слово "сессия" применительно к программированию ничего общего со словом session не имеет - исключительно ваша личная проблема. Поищите в интернете слово "сессия" - добрую половину будет занимать именно различный материал по работе с теми самими session из топика. Если бы я переводил как "сеанс", то меня бы просто не поняли.
ЗЫ Не стоит всегда и везде махать при любой возможности словарями. Люди называют это фарисейством.
То, что для вас слово "сессия" применительно к программированию ничего общего со словом session не имеет - исключительно ваша личная проблема. Поищите в интернете слово "сессия" - добрую половину будет занимать именно различный материал по работе с теми самими session из топика. Если бы я переводил как "сеанс", то меня бы просто не поняли.
ЗЫ Не стоит всегда и везде махать при любой возможности словарями. Люди называют это фарисейством.
+1
> Специалист должен владеть терминологией на своём языке.
Я когда-то ставил себе русскую версию Photoshop и видел 3dsmax. Это просто жопа (да, не литературное слово). Но переведено было все вроде бы и правильно. Поэтому с терминологией на родном языке в области IT я с вами не согласен.
Я когда-то ставил себе русскую версию Photoshop и видел 3dsmax. Это просто жопа (да, не литературное слово). Но переведено было все вроде бы и правильно. Поэтому с терминологией на родном языке в области IT я с вами не согласен.
0
критикуя предлагай
0
увидел 4
eval
в коде закрыл и больше не открывал -6
К сожалению, при таком подходе вам придется "закрыть и больше не открыть" такие вещи как prototype, jquery и даже json.
+2
:) на 93Кб кода в jQuery
Если кто-то может мне компетентно пояснить, почему
eval
встречается только 2 раза. Я не думаю, что Ваш довод при таком раскладе можно считать уместным.Если кто-то может мне компетентно пояснить, почему
eval
стал считаться признаком хорошего программирования я с радостью прооппонирую +1
Как в яваскрипте установить, скажем, значение произвольному ключу в хэше, не используя eval?
-2
:) я бы начал с того, зачем вам менять "произвольный" ключ в хеше почему нельзя обратиться по определенному?
Потом можно попробовать перебрать массив и собрать обратно, затем сравнить с
Потом можно поискать, что придумало прогрессивное человечество на эту тему, например, почитав 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'и для различных ее решений
0
Код на 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;');
-2
потому что на клиенте это будет несколько тормозить :) Если это несколько помножить на число вызовов, то можно получить вполне реальная мс и с. Не более того.
Я не знаю реализации php, но на JavaScript этот код тормозит. Достаточно просто использовать другую структуру, например:
Я не знаю реализации php, но на JavaScript этот код тормозит. Достаточно просто использовать другую структуру, например:
var hash = new Object();
var hash.keys = new Array();
hash.keys{key} = someval;
0
Эм, а вы с перлом не спутали? Что это за конструкция "hash.keys{key}"? Нет в яваскрипте адресуемых хэшей. Если бы была возможна такая запись, то не было миллиона эмуляций хэшей с произвольным ключом.
0
бесконечно извиняюсь, что не проверил:
var hash=new Object(),val='mykey';
hash.keys=new Array();
hash.keys[val]='myval';
alert(hash.keys[val]);
+1
Такой подход плох вот этим:
var hash=new Object(),val='mykey';
hash.keys=new Array();
hash.keys[val]='myval';
alert(hash.keys.length); // 0?
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 - динамическое свойство, меняется по мере добавления/удаления свойств.
0
Во-первых, читайте внимательней - hash это не Object, а Array.
Во-вторых, http://habrahabr.ru/blog/webdev/42627.ht…
Во-вторых, http://habrahabr.ru/blog/webdev/42627.ht…
0
хэш это как раз объект.
0
Не хэш вообще, а переменная под именем hash из примера выше.
0
именно.
{} - объект. У него нет свойства length
{} - объект. У него нет свойства length
0
Верно, опечатался.
Не hash, а hash.keys, который Array. Length у него смотрим.
Не hash, а hash.keys, который Array. Length у него смотрим.
0
я не понял. При чем тут длина? И зачем нужен отдельно массив? У массива, кстати, длина не растет совершенно обоснованно. Потому что массив это массив. Он не хэш. Он не умеет включать в себя произвольные ключи.
аналогом вашего кода
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
+1
В данном случае перловый термин "хэш" и JS-ный термин "объект" имеют один смысл. А "массив" реализован по-другому. И кстати имхо такая реализация намного грамотнее и логичнее, чем у того же РНР, где всё в одну кучу.
В данном случае перловый термин "хэш" и JS-ный термин "объект" имеют один смысл. А "массив" реализован по-другому. И кстати имхо такая реализация намного грамотнее и логичнее, чем у того же РНР, где всё в одну кучу.
0
Задайте этот вопрос тов. sunnybear, это был его комментарий
0
Бред, зачем создавать объект типа 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!!
0
alert(hash.keys.length); // 2!!
Хм? :)
С объектами такое возможно, но зато нельзя использовать вещи типа every, map, filter и т.д.
Хм? :)
С объектами такое возможно, но зато нельзя использовать вещи типа every, map, filter и т.д.
0
Читай внимательнее, я использовал не Object вместо Array, а нормальный для Array, целочисленный ключ val=1. Свойство массива length, как и методы map, filter, и пр. учитывают только целочисленные ключи. А в твоем первом примере eval не нужен ну вообще никак. Последняя строчка заменяется на нормальную
hash[key] = someval;
и при этом, так же как и твоя, не работает, т.к. переменная someval не определена. В общем учи матчасть ;)
hash[key] = someval;
и при этом, так же как и твоя, не работает, т.к. переменная someval не определена. В общем учи матчасть ;)
0
Ну раз уже мы с тобой чокнулись и поцеловались, то покури, братан, вот эту ссылку http://blog.mootools.net/2007/10/8/what-…
0
Ну и?.. Я неплохо знаю библиотеку 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;
Так когда же девушка из торта вылезет?
Ну а коль обращение к Вам на "Вы" поднимает Вашу самооценку, без проблем, я в любой момент готов принести свои извенения за моё панибратство. Меня, в свою очередь, можете продолжать называть на "ты", это ни коим образом не ущимляет мою гордость.
0
Да ну?
Это Вы так считаете или у Вас есть доказательства?
У ЛЮБОГО объекта в JS есть свойство length.
2 artch:
var hash=new Object() - это вы Array-ем называете?
(Сорри, раз в 5 минут ответы писать ОЧЕНЬ неудобно.)
Это Вы так считаете или у Вас есть доказательства?
У ЛЮБОГО объекта в JS есть свойство length.
2 artch:
var hash=new Object() - это вы Array-ем называете?
(Сорри, раз в 5 минут ответы писать ОЧЕНЬ неудобно.)
0
Конечно евал тормозит. Вообще давно пора в браузерах писать на АссемблерСкрипте. Или на смеси непонятно чего непонятно с каким перлом.
>> 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 = [];
Ведь первое тоже тормозит! =)))
-1
>> Зачем придумывать потрясающие ноухау, чтобы сделать это на яваскрипте, когда можно просто:
А зачем Вы придумали евал? :)
var key = 'someval';
var hash = { 'someval' : 10 };
alert( hash[key] );
// output: 10
А зачем Вы придумали евал? :)
var key = 'someval';
var hash = { 'someval' : 10 };
alert( hash[key] );
// output: 10
-1
Здорово! Только проблема заключается в том, что мы вообще-то не знаем значения key.
0
в вашем-же примере у key значение есть
0
hash[key]
0
эээ... а чем вариант с hash[key]=key не подходит?
0
В вашем примере не нужен eval.
var x = {};
var mem = 'member_name';
x[mem] = 'string';
В своем проекте использовал евал только в одном особо извращенном случае, когда мне надо было вызвать функцию, о которой известно только ее имя в текстовом виде, плюс еще вернуть ее значение.
сделал так потому что спешил, потом переделал нормально, чтобы последователи не сломали себе моск и мне руки =)
var x = {};
var mem = 'member_name';
x[mem] = 'string';
В своем проекте использовал евал только в одном особо извращенном случае, когда мне надо было вызвать функцию, о которой известно только ее имя в текстовом виде, плюс еще вернуть ее значение.
сделал так потому что спешил, потом переделал нормально, чтобы последователи не сломали себе моск и мне руки =)
+1
Код на php:
$key = 'somekey';
$hash[$key] = $someval;
А что вам мешает написать то же самое на js?
0
Вы можете сказать когда он стал достаточным признаком плохого программирования?
0
Вы немного перевираете. Он не является признаком плохого программирования. Его отсутствие является признаком хорошего :)
Про
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…
0
Я не нуб :)
-1
Кстати, вы тоже перевираете. Отсутствие eval является необходимым или достаточным признаком хорошего программирования?
По мне — не тем и не другим.
По мне — не тем и не другим.
0
признак не может быть ни необходимым, ни достаточным. Это только условия таковыми являются. Я предельно четко все сформулировал :)
0
Да, позабыл, что признак — достаточное условие. Тем не менее. Наличие и отсутствие eval ни о чём однозначно не говорит. И уж тем более, отсутствие eval не является признаком (достаточным условием) для хорошего программирования. Это не так.
0
а как json разбирать без eval()?
0
какая интересная точка зрения. вы знаете что такое javascript?
-3
Давайте посмотрим как вы решите задачу декодирования JSON без eval (нет, я не говорю, что невозможно, но это будет сильно и, главное, неоправданно сложнее).
0
var json="{'test1':'1','test2':'2'}"
var obj = new Function("","return " + json);
var result = obj();
почти без евала :Р
var obj = new Function("","return " + json);
var result = obj();
почти без евала :Р
+1
http://www.JSON.org/js.html
Это оправданно. Eval is evil.
Это оправданно. Eval is evil.
0
Расскажите мне почему это оправдано? Данные поступают с сервера, с которого приходит frontend. Значит — дружественного по-умолчанию. Безопасность данных можно гарантировать функцией на сервере.
0
О! Начали минусовать. Ребят, eval — это не какой-то признак плохого программирования, просто часто использование eval неоправданно, но есть вещи, где он нужен. В JavaScript самый сильный пример — декодированние JSON.
0
я бы сказал, что это единственный сильный пример. Только в этом случае я с Вами соглашусь :)
0
Это единственный пример, который сразу приходит в голову. Но бывают ограничения языка, где применить eval проще и не менее безопасно (например, в случаях, когда внешние данные туда попасть не могут).
За 10 лет занятия вебом я видел несколько разных оправданных случаев использования eval в JS и PHP (в Perl не видел, кстати).
За 10 лет занятия вебом я видел несколько разных оправданных случаев использования eval в JS и PHP (в Perl не видел, кстати).
0
я, собственно, и хотел сказать, что оправданных случаев его использования бесконечно мало. В данной библиотеке, по моему скромному мнению, ему не место.
0
В Perl через eval реализуется поддержка исключений. Дело в том, что в Perl eval не обязательно используется для выполнения текстовой строки как код, он отлично выполняет обычные блоки кода - что нужно и для исключений, и для таймаутов, etc.
А выполнение текстовых строк через eval - это обычно используется или для реализации shell на perl, или для восстановления структур данных после Data::Dumper (а-ля пример с JSON). Больше ничего в голову действительно не приходит.
А выполнение текстовых строк через eval - это обычно используется или для реализации shell на perl, или для восстановления структур данных после Data::Dumper (а-ля пример с JSON). Больше ничего в голову действительно не приходит.
0
Да, точно, надо же как позабыл язык. Eval там очень широко использовался :)
0
Метод интересный, но с практической стороны, ИМХО, непрактичный: закрытие окна или открытие любой ссылки в новой закладке приведут к потере данных.
Вобщем есть над чем поработать...
Вобщем есть над чем поработать...
0
Цитата:
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 какое ограничение этого параметра?
-1
А вы проверьте и нам расскажите.
+1
дык проверь и расскажи нам :)
если ты в Опере, то прямо в адресной строке и проверь, делов-то :)
если ты в Опере, то прямо в адресной строке и проверь, делов-то :)
0
Нам написали о хорошей идеи. Реализацию можете писать сами, я например
на mootols использовал бы Json.toString и Json.evaluate.
По поводу ограничений, в Oper-е - указанного Вами ограничения нет,
(может в каких-то старых версиях есть, но мне про это не известно).
Поэтому значение видимо ограничивается размером ОЗУ клиента :).
на mootols использовал бы Json.toString и Json.evaluate.
По поводу ограничений, в Oper-е - указанного Вами ограничения нет,
(может в каких-то старых версиях есть, но мне про это не известно).
Поэтому значение видимо ограничивается размером ОЗУ клиента :).
0
UFO just landed and posted this here
Ну вообщем прикольно, но все же я отделяю данные на сервер и минимальную информацию клиенту ))) Это более надежно на мой взгляд. Но тот кому надо сохранить большие данные, которые не требуют особой безопасности например, настрйки интрефейса и т.д., им в самый раз )))
0
UFO just landed and posted this here
Костыль — да, есть недостатки — да, но чем вы можете это заменить, чтобы работало везде? User storage пока работает очень мало где.
0
Практически везде. Только по-разному. IE 5.0+ - behaviors, IE8 - globalStorage, FF 2+ - globalStorage, Safari 2+ - интерфейс к SQLite.
0
Opera? FF 1.5?
0
1. Поддержка FF 1.5 была прекращена производителем 29 мая 2007 года. Если кто-то за год поленился обновить версию это исключительно его личные проблемы. Пользователи FF ведь считаются существами разумными?
2. Opera действительно ничего из этого не поддерживает. В зависимости от важности функционала, реализуемого через storage, можно либо не делать ничего, либо, например, реализовать хранение данных на сервере.
Ну и главное:
3. "Работает очень мало где" это, мягко говоря, преувеличение.
2. Opera действительно ничего из этого не поддерживает. В зависимости от важности функционала, реализуемого через storage, можно либо не делать ничего, либо, например, реализовать хранение данных на сервере.
Ну и главное:
3. "Работает очень мало где" это, мягко говоря, преувеличение.
0
Я понимаю что не полноценный но кому-то так легче, иногда бывают случаи что блин надо хранить какие-то данные которые не влазиют в куки, тут спорный вопрос, но можно воспользоватся ))) Пускай юзают ведь кому-то от этого приятно )))
0
Что касается безопасности — не вижу никакой проблемы, всё тривиально: шифруйте top.name ключём, который будет прописан в javascript-е конкретного сайта. Тогда другой сайт доступ к сессионным данным чужого сайта не получит. Странно, что автор реализовал множество гибких настроек но не сделал эту простую и полезную фичу.
0
а если у пользователя отключен ява скрипт в браузере???
работать то не будет ((((
Да и ваще изварат имхо. Зачем изобретать велосипед, когда есть все готовое?
работать то не будет ((((
Да и ваще изварат имхо. Зачем изобретать велосипед, когда есть все готовое?
-2
Спасибо за отличную идею!
0
UFO just landed and posted this here
Сам пока не использовал, но кажется к месту (просто сейчас с доджо разбираюсь и запомнилось)
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-…
0
вот вам в помощь к разбирательству со Storage http://browserpersistence.ru/
0
Огромное спасибо! Не столько за библиотеку, сколько за идею. Настолько в тему попало, что даже представить сложно. У меня именно тот случай когда уперся в объем, при этом условия хранения данных в пределах одного окна/таба до закрытия с головой достаточно. В общем спасибо!
0
Действительно оригинальный способ. Таким макаром можно обойти тех у кого куки отключены. Но такие "куки" не увидит PHP но это тоже поправимо :)
0
Sign up to leave a comment.
Переменные сессии на яваскрипте без кук