 
			
				06.11.2015, 16:06
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2010 
					
					
					
						Сообщений: 3,417
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		FINoM, плохо доку прочитал) Там есть  фильтры, можно слушать только те атрибуты, которые тебе нужны (смотри "attributeFilter").
 
И да, раньше были MutationEvents, они были синхронными, и вот это было действительно медленно.  
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.11.2015, 16:07
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2010 
					
					
					
						Сообщений: 3,417
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 И ещё: по поводу value -- меня полностью удовлетворяет oninput event (который, кстати, срабатывает и для элементов с contenteditable="true"). 
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.11.2015, 16:09
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Новичок 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.09.2010 
					
					
					
						Сообщений: 2,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 trikadin, дык, понятно, я могу слушать oninput, но я хочу слушать изменение свойства, а не DOM событие или изменение атрибута. 
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.11.2015, 16:48
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 06.11.2015 
					
					
					
						Сообщений: 68
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от FINoM
			 
		
	 | 
 
	| 
		Судя по доке он слушает все изменения ноды, а это медленно.
	 | 
 
	
 
 Да вроде нет, там конкретно указывается, что слушать, а что нет. И непонятно, зачем тебе тут скорость нужна вообще. Он отрабатывает только на событие. Что у тебя, миллион событий в секунду чтоли происходит?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.11.2015, 16:59
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Новичок 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.09.2010 
					
					
					
						Сообщений: 2,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от loljs
			
		
	 | 
 
	| 
		Что у тебя, миллион событий в секунду чтоли происходит?
	 | 
 
	
 
 Я хочу реализовать двусторонний байндинг, а там да, может быть очень много элементов.  
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.11.2015, 19:39
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2010 
					
					
					
						Сообщений: 3,417
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 FINoM, так чем MutationObserver не устраивает, в итоге? Если ты начнёшь наблюдать за одним атрибутом value, то ты получишь оповещение о его изменении, что тебе и нужно, и при этом это будет асинхронно, что хорошо, ибо не тормозит отрисовку DOM'а. 
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.11.2015, 19:57
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Новичок 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.09.2010 
					
					
					
						Сообщений: 2,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 trikadin, я имею в виду не атрибут а свойство. Его разве можно слушать? 
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.11.2015, 20:12
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2010 
					
					
					
						Сообщений: 3,417
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 FINoM, ну, ты узнаёшь об обновлении атрибута, и, соответственно, свойства, которое с ним синхронизировано. Не понимаю, видимо, в чём твоя проблема. 
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.11.2015, 20:14
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Новичок 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.09.2010 
					
					
					
						Сообщений: 2,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 trikadin, эм, я никогда не работаю с атрибутами, если есть возможность изменить свойство. 
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.11.2015, 20:37
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2010 
					
					
					
						Сообщений: 3,417
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от FINoM
			
		
	 | 
 
	| 
		trikadin, эм, я никогда не работаю с атрибутами, если есть возможность изменить свойство.
	 | 
 
	
 
 И? Проблема-то в чём? Вряд ли ты добавляешь DOM-объекту нестандартные свойства (у которых нет сопоставленных им атрибутов), а даже если, то вот как раз их ты можешь объявить аксессорами, а те свойства, у которых есть сопоставленные атрибуты, ты можешь слушать через MutationObserver.
 
<a id="search-link" href="http://google.com/" data-search="google" title="Гугл">Google</a>
<script>
'use strict';
const 
  link = document.querySelector('#search-link'),
  observer = new MutationObserver((mutationsList) => {
    console.log(mutationsList);
  });
observer.observe(link, {
  childList: true,
  attributes: true
});
link.href = 'http://yandex.ru/';
link.title = 'Яндекс';
link.dataset.search = 'yandex';
link.textContent = 'Yandex';
</script>
Смотреть в консоль.  
		
	
		
		
		
		
		
			
		
		
		
		
		
						  
				
				Последний раз редактировалось trikadin, 06.11.2015 в 21:21.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
	
 
 
 
 
 
	| Тема | 
	Автор | 
	Раздел | 
	Ответов | 
	Последнее сообщение | 
 
	| Как сделать HTML фичи? | 
	2chan | 
	Events/DOM/Window | 
	6 | 
	26.09.2014 18:50 | 
 
 
 
 
	 | 
 
 
 |  
  |