Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Web Workers и видимость функций (https://javascript.ru/forum/misc/16840-web-workers-i-vidimost-funkcijj.html)

x-yuri 14.05.2011 08:54

я уверен, что изначально речь шла только о строках, например, потому что в 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.


x-yuri 14.05.2011 09:18

...собственно вот

FINoM 15.05.2011 01:54

Цитата:

Сообщение от x-yuri
Или ты считаешь, что методы вместе с DOM-объектами тоже надо хранить?

Просто объектов будет достаточно. Хотя, исходя из моих скромных знаний, я не могу найти причин запрета на хранение DOM элементов и методов.

x-yuri 15.05.2011 13:13

во-первых, зачем хранить код, если можно обьект из данных воссоздать. Во-вторых, каждый метод привязан к лексическому конексту:
var a = 2, b = 3;
function f(c){ return b + window[c] + document.getElementById('d').value; }

т.е. это что же получается, все текущее состояние окна надо вместе с методом сохранять?

FINoM 15.05.2011 21:24

Цитата:

Сообщение от x-yuri
т.е. это что же получается, все текущее состояние окна надо вместе с методом сохранять?

Запретить инкапсуляцию, например?

x-yuri 15.05.2011 22:24

в смысле? Сохранять методы, игнорируя то, что они привязаны к каким-то переменным? Так оно же работать тогда не будет. В данном случае эффективнее переложить ответственность за преобразование в строку на сам обьект, а не придумывать какое-либо универсальное решение. В случае, например, с eval, который зависит от входных параметров, я не вижу способа отследить используемые переменные. Т.е. при каждом сохранении надо делать полный снимок состояния всех окон, к которым имеется доступ. Но к счастью это не нужно, потому что не сложно написать метод, сериализующий обьект в строку

FINoM 16.05.2011 04:38

Цитата:

Сообщение от x-yuri
Так оно же работать тогда не будет.

Ну так поставить такое требование в спецификации, проблем не будет. А инкапсулируемые переменные делать undefined.

Это ладно, с методами вопрос спорный, но вот отсутствие в реализациях хранения объектов — бред.

x-yuri 16.05.2011 11:49

Цитата:

Сообщение от FINoM
Ну так поставить такое требование в спецификации, проблем не будет. А инкапсулируемые переменные делать undefined.

а как сделать инкапсулируемую переменную undefined? При восстановлении обьекта надо создать глобальную переменную с соответствующим именем и значением undefined? Или исправить код метода?

Цитата:

Сообщение от FINoM
Это ладно, с методами вопрос спорный, но вот отсутствие в реализациях хранения объектов — бред.

т.е. то, что реализации соответствуют спецификации, хоть и более старой - это бред? Тогда у тебя наверное есть идеи, как лучше решить эту проблему с браузерами и стандартами. И в конце концов, разве так сложно преобразовать обьект в строку самому?

FINoM 16.05.2011 20:37

Цитата:

Сообщение от x-yuri
а как сделать инкапсулируемую переменную undefined?

Просто забивать на переменные, переданные извне (использовать только локальные).
Цитата:

Сообщение от x-yuri
Тогда у тебя наверное есть идеи, как лучше решить эту проблему с браузерами и стандартами.

Да, у меня есть идеи: добавление возможности хранения объектов никоим образом не повлияет на приложения, которые уже используют localstorage.
Цитата:

Сообщение от x-yuri
И в конце концов, разве так сложно преобразовать обьект в строку самому?

Меня смущает одно: вот у меня есть сравнительно крупная база данных (http://www.google.com/fusiontables/D...?dsrcid=850777), её нужно сохранить локально, хватит ли места в строке?

x-yuri 16.05.2011 21:10

Цитата:

Сообщение от FINoM
Просто забивать на переменные, переданные извне (использовать только локальные).

ну так работать же не будет. Причем местами тебе надо будет учитывать, что переменная может быть недоступна. Т.е. вместо того чтобы самому сериализовать обьекты, ты хочешь создать себе ненужные проблемы

Цитата:

Сообщение от FINoM
Да, у меня есть идеи: добавление возможности хранения объектов никоим образом не повлияет на приложения, которые уже используют localstorage.

ну я говорил про другие проблемы. А с этой проблемой да, ничего не должно поломаться. Но только необходимости в этой большой нету. Есть вопросы по-важнее.

Цитата:

Сообщение от FINoM
Меня смущает одно: вот у меня есть сравнительно крупная база данных (http://www.google.com/fusiontables/D...?dsrcid=850777), её нужно сохранить локально, хватит ли места в строке?

судя по той же ссылке, у тебя есть минимум 5МБ. А БД у тебя небольшая, не вижу проблем


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