Html5 local storage
var obj = {val: "aaa"};
var test =
{
o1: obj,
o2: obj
};
console.log(test.o1==test.o2);
localStorage.test = JSON.stringify(test);
test = JSON.parse(localStorage.test);
console.log(test.o1==test.o2);
закономерно получаем true, false вопрос: есть ли способ так засунуть объекты в storage чтоб было true, true при обратной загрузке ??? |
Нет. Объекты сравниваются по ссылкам, а не по строению. Хочешь сравнения по строению - сравнивай JSON-представление.
|
Цитата:
Только тогда будет тебе true... |
Типа такого...
var obj = {val: "aaa"};
var test =
{
o1: obj,
o2: obj
};
alert(test.o1==test.o2);
localStorage.test = JSON.stringify(test);
localStorage.test1 = JSON.stringify(obj);
test = JSON.parse(localStorage.test);
obj = JSON.parse(localStorage.test1);
test.o1=obj;
test.o2=obj;
alert(test.o1==test.o2);
|
Цитата:
а) таких ссылок дофига (десятки, может сотни) ссылки на объекты лежат в двухмерном массиве б) заранее неизвестно какие именно ячейки ссылаются на один объект, а какие нет это всё динамически |
Цитата:
Цитата:
var obj = {val: "aaa"};
var test =
{
o1: obj,
o2: obj
};
alert(test.o1==test.o2);
localStorage.test = JSON.stringify(test);
test = JSON.parse(localStorage.test);
alert(JSON.stringify(test.o1)===JSON.stringify(test.o2));
|
Цитата:
Может тебе хватит сравнения по советам выше? |
Цитата:
нужна возможность когда изменил объект и изменилось содержимое ячеек которые на него ссылаются |
Тогда вариант ksa.
Цитата:
Хранишь в базе два объекта - в одном этот свой хеш с какими-нибудь идентифицирующими объекты значениями, а в другом сами объекты по идентифицирующим значениям. При загрузке просто пройтись циклами. |
Цитата:
При чтении различать, что это значение - отдельно сохраненный объект, его нужно еще прочитать и переприсвоить... |
| Часовой пояс GMT +3, время: 11:02. |