Слежение за объектом
Добрый день. Ищу совета.
Вкратце: как кроссбраузерно повесить слушатель изменений одного массива? Как это работает? Подробности Принцип такой: есть на HTML-странице некий изначально пустой ненумерованный список. Просто <ul></ul>И во время загрузки с сервера запрашивается JSON объект примерно такого вида: { "item1": { "icon": "icon.png", "text": "Подпись значка" }, "item2": { "icon": "icon2.png", "text": "Подпись другого значка" } } После обработки объекта в список добавляются все перечисленные пункты. Ссылка на этот массив сохраняется. Теперь хочу сделать, чтобы все изменения, внесённые в этот массив автоматически отображались на список на странице. В связи с этим вопрос: это же возможно? Всё что мне удалось найти своими силами это некий фреймворк tent, писанный каким-то дядей, но он мне показался слишком монструозным для такой задачи. Может существует что-то полегче, чего я не нашёл? |
Просто сделайте свои ф-ции изменения этого объекта, которые будут вызывать обработчик.
|
Да, такой вариант тоже рассматривается, но это на крайний случай.
Всё же хотелось бы что-нибудь наиболее простое с точки зрения результирующего API. |
Это не крайний случай, это правильное решение)
|
Сравнивать) того чего нет добавлять с помощью innerHTML то что пропало удалять если я правильно понял
|
Цитата:
|
Цитата:
|
Цитата:
|
Object.prototype.watch|unwatch - то что нужно, можно слушать изменение значений переменных
|
poorking, а можно поподробнее?
|
|
По мне так через Jquery $.unique $.extend
|
poorking, а, так геко-онли же. Тогда понятно)
|
trikadin,
ой прошу прощения, не обратил внимания что ТС отметил что надо кроссбраузерно. Ну тогда придумать свои события и самому же их "поджигать". jQuery: bind + trigger если память не изменяет. А события изменения значений переменных пока только Gecko позволяет отлавливать, может, конечно и у других браузеров есть свои специфичные инструменты, не исследовал тему. А вообще вот этот which, на мой взгляд, здоровская штука, жаль не стандартная |
Потому что не нужна никому, кроме разработчиков, вот и не парятся стандартизаторщики)
И вообще, мне кажется, что при продуманном коде оно и не понадобится) |
trikadin,
Пролистал Джон Резиг - "Профессиональные приёмы программирования" не помогло решить мою проблему((( с head А теперь по теме! Помоему теми 2 функциями в jquery, что я предложил решаеться это в несколько строк ) к чему демогония?) |
KupueIIIKo, а причём тут они? Я как-то не понимаю)
Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
Вообще, спасибо poorking за подсказку, именно это я искал. Уже нашёл jQuery плагин для кроссбраузерности, а также библиотеку Reactive Extensions, так что выбор есть - буду изучать. На край обращусь к tent.
Так что акцессоров скорее всего удастся избежать :) |
Цитата:
|
Часовой пояс GMT +3, время: 11:56. |