Category:JS data binding framework

From IT Skills

data binding[edit | edit source]

  • Change listeners

в таких фреймворках как Knockout и Backbone была разработана система отслеживания изменений (change listeners). Вы работаете с данными не напрямую, а через специальный слой... Для разрешения подобных зависимостей в KO существует механизм dependency tracking... мы получаем третью проблему: непрерывную микро-рассинхронизацию всего состояния данных. Каждый раз, изменяя что-либо, мы вызываем этим соответствующее срабатывание, которое в свое очередь может изменить другие данные и тоже вызвать срабатывание.

  • Dirty checking

По этому принципу работает Angular. Dirty checking — это проверка на изменененность данных. Это простейший подход, который избавляет нас как от необходимости работать с данными через специальный «слушающий» слой... вопрос в том, когда производить эту проверку? В Angular этот вопрос решается путем автоматического вызова функции $digest после каждого участка кода, предположительно могущего изменить данные. Это ключевой момент — проверка выполняется тогда и только тогда, когда данные могли быть изменены (например, при действии пользователя), и никогда не выполняется в других случаях. Если вы ожидаете изменения данных в какой-то другой момент времени (например, при поступлении события от сервера или завершении какого-либо процесса), вы должны явно указать Angular, что стоит выполнить проверку, вызвав функцию $apply.

...при изменении всего одной переменной выполняется dirty check всех данных. Нужно лишь понять, насколько сильны потери производительности. Тут стоит отметить, что Angular во время выполнении dirty check никогда не работает с DOM. Все данные — это нативные объекты js.

Subcategories

This category has only the following subcategory.

A

Pages in category "JS data binding framework"

The following 5 pages are in this category, out of 5 total.