14.05.2011, 08:54
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
я уверен, что изначально речь шла только о строках, например, потому что в dive into html говорится о строках. Но заметь, что даже сейчас речь не идет о хранении, например, методов обьектов. Или ты считаешь, что методы вместе с DOM-объектами тоже надо хранить?
И не стоит забывать, что спецификация постепенно изменяется. Но тут ничего не поделаешь:
Сообщение от Dive Into HTML5
|
Implementations and specifications have to do a delicate dance together. You don’t want implementations to happen before the specification is finished, because people start depending on the details of implementations and that constrains the specification. However, you also don’t want the specification to be finished before there are implementations and author experience with those implementations, because you need the feedback. There is unavoidable tension here, but we just have to muddle on through.
|
|
|
14.05.2011, 09:18
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
|
|
15.05.2011, 01:54
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от x-yuri
|
Или ты считаешь, что методы вместе с DOM-объектами тоже надо хранить?
|
Просто объектов будет достаточно. Хотя, исходя из моих скромных знаний, я не могу найти причин запрета на хранение DOM элементов и методов.
|
|
15.05.2011, 13:13
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
во-первых, зачем хранить код, если можно обьект из данных воссоздать. Во-вторых, каждый метод привязан к лексическому конексту:
var a = 2, b = 3;
function f(c){ return b + window[c] + document.getElementById('d').value; }
т.е. это что же получается, все текущее состояние окна надо вместе с методом сохранять?
|
|
15.05.2011, 21:24
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от x-yuri
|
т.е. это что же получается, все текущее состояние окна надо вместе с методом сохранять?
|
Запретить инкапсуляцию, например?
|
|
15.05.2011, 22:24
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
в смысле? Сохранять методы, игнорируя то, что они привязаны к каким-то переменным? Так оно же работать тогда не будет. В данном случае эффективнее переложить ответственность за преобразование в строку на сам обьект, а не придумывать какое-либо универсальное решение. В случае, например, с eval, который зависит от входных параметров, я не вижу способа отследить используемые переменные. Т.е. при каждом сохранении надо делать полный снимок состояния всех окон, к которым имеется доступ. Но к счастью это не нужно, потому что не сложно написать метод, сериализующий обьект в строку
|
|
16.05.2011, 04:38
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от x-yuri
|
Так оно же работать тогда не будет.
|
Ну так поставить такое требование в спецификации, проблем не будет. А инкапсулируемые переменные делать undefined.
Это ладно, с методами вопрос спорный, но вот отсутствие в реализациях хранения объектов — бред.
|
|
16.05.2011, 11:49
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от FINoM
|
Ну так поставить такое требование в спецификации, проблем не будет. А инкапсулируемые переменные делать undefined.
|
а как сделать инкапсулируемую переменную undefined? При восстановлении обьекта надо создать глобальную переменную с соответствующим именем и значением undefined? Или исправить код метода?
Сообщение от FINoM
|
Это ладно, с методами вопрос спорный, но вот отсутствие в реализациях хранения объектов — бред.
|
т.е. то, что реализации соответствуют спецификации, хоть и более старой - это бред? Тогда у тебя наверное есть идеи, как лучше решить эту проблему с браузерами и стандартами. И в конце концов, разве так сложно преобразовать обьект в строку самому?
|
|
16.05.2011, 20:37
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от x-yuri
|
а как сделать инкапсулируемую переменную undefined?
|
Просто забивать на переменные, переданные извне (использовать только локальные).
Сообщение от x-yuri
|
Тогда у тебя наверное есть идеи, как лучше решить эту проблему с браузерами и стандартами.
|
Да, у меня есть идеи: добавление возможности хранения объектов никоим образом не повлияет на приложения, которые уже используют localstorage.
Сообщение от x-yuri
|
И в конце концов, разве так сложно преобразовать обьект в строку самому?
|
Меня смущает одно: вот у меня есть сравнительно крупная база данных ( http://www.google.com/fusiontables/D...?dsrcid=850777), её нужно сохранить локально, хватит ли места в строке?
|
|
16.05.2011, 21:10
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от FINoM
|
Просто забивать на переменные, переданные извне (использовать только локальные).
|
ну так работать же не будет. Причем местами тебе надо будет учитывать, что переменная может быть недоступна. Т.е. вместо того чтобы самому сериализовать обьекты, ты хочешь создать себе ненужные проблемы
Сообщение от FINoM
|
Да, у меня есть идеи: добавление возможности хранения объектов никоим образом не повлияет на приложения, которые уже используют localstorage.
|
ну я говорил про другие проблемы. А с этой проблемой да, ничего не должно поломаться. Но только необходимости в этой большой нету. Есть вопросы по-важнее.
судя по той же ссылке, у тебя есть минимум 5МБ. А БД у тебя небольшая, не вижу проблем
|
|
|
|