Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.08.2012, 14:22
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Правильное использование MutationObserver
В процессе работы появилась надобность отслеживать изменения в DOM-дереве. Так как Mutations Events являются очень требовательными к вычеслительным рессурсам пользователя, то разработчики браузеров рекомендуют использовать MutationObserver. MutationObserver пока работает только в Chrome и Firefox.

Вопрос: Как правильно использовать это API? Тоесть я видел примеры и документацию пытался читать. Более подробно я хотел бы узнать об параметрах которые передаются в observe:
{
  childList: true // Это указывает что нужно отслеживать изменение количества потомков
  attributes: true // Отслеживать изменение атрибутов элемента и/или атрибутов его детей?
}


А также не совсем понятные например:
{
  subtree: true, // bubbles
  characterData: true
}

и прочие.

Если есть статья на русском - то супер.
Ответить с цитированием
  #2 (permalink)  
Старый 03.08.2012, 12:39
Аватар для shkoder
Аспирант
Отправить личное сообщение для shkoder Посмотреть профиль Найти все сообщения от shkoder
 
Регистрация: 06.07.2012
Сообщений: 31

На русском не знаю, но зато очень доступно тут написано http://www.w3.org/TR/dom/
characterData - http://www.w3.org/TR/dom/#characterdata
subtree: true // изменения должны быть не только у элемента, но И у потомков
http://www.w3.org/TR/dom/#mutationobserver + 2 PageDown как использовать.
зы: можно попробовать сделать перевод для хабра. Времени жаль только нет сейчас.
Ответить с цитированием
  #3 (permalink)  
Старый 03.08.2012, 14:16
Аватар для shkoder
Аспирант
Отправить личное сообщение для shkoder Посмотреть профиль Найти все сообщения от shkoder
 
Регистрация: 06.07.2012
Сообщений: 31

Сообщение от Maxmaxmахimus Посмотреть сообщение
только проверка setIntervalом на изменения, только хардкор
ну или
function LikeMutationObserver(callback) {
    if (MutationObserver)
          return new MutationObserver(callback);
    else
          ;//другой способ с такими же методами, но другой реализацией
}

var observer = LikeMutationObserver(function(rec, obs){
    // ...
});
Ответить с цитированием
  #4 (permalink)  
Старый 03.08.2012, 15:39
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Maxmaxmахimus Посмотреть сообщение
Если серьезно то че за дом трансформейшен? типа изменение размеров блоков и прочее?
типа изменение размеров блоков и прочее
Ответить с цитированием
  #5 (permalink)  
Старый 04.08.2012, 15:39
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Maxmaxmахimus
это же сеттеры, и их можно сделать искуственными, чтобы функция которая устанавливает свойства блокам генерировала бы событие..
таки да, и мы даже знаем, как этот паттерн называется.
Ответить с цитированием
  #6 (permalink)  
Старый 04.08.2012, 20:51
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Maxmaxmахimus Посмотреть сообщение
у этой штуки есть название? система событий не?
точнее, наблюдатель.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SetTimeout правильное использование nata031189 Общие вопросы Javascript 5 07.07.2012 11:32
FileManager c использование ajax nata031189 Серверные языки и технологии 0 30.03.2012 02:40
Про использование cookies zloctb Общие вопросы Javascript 3 11.02.2012 08:36
jquery.history.js Правильное использование warobushek jQuery 0 10.02.2011 07:42
Возможно ли использование "горячих" клавиш для навигации по таблице? sergeos jQuery 9 16.07.2010 13:43