последние месяцы стали свидетелями значительного обсуждения в отношении оптимальной обработки событий JavaScript. Библиотека JSAction от Google и предстоящий метод Ecmascript 7 Object.Observe () (уже поддерживаемый в Chrome 36 и Node.js Harmony) подпитывали эту дебаты. Эта статья исследует различные модели обработки событий, взвешивая их преимущества и недостатки.
]ключевые точки:
object.observe () и виртуальные DOMS (используемые в React и RACTE) значительно улучшают производительность путем оптимизации обновлений данных и пользовательского интерфейса, уменьшения манипуляций с DOM.
]
jsaction атрибут. Стремившись повысить производительность и снизить глобальное загрязнение охвата, его сложность и менее нелогичное использование могут перевесить преимущества для многих проектов. ]
растущая тенденция включает в себя размещение логики непосредственно в пораженные элементы DOM не только для событий, но и обработку данных. Структуры, такие как угловые, повышенные и реагировать, обеспечивают соблюдение MVC, обеспечивая связывание данных и реактивное программирование через шаблоны. Этот подход, хотя и потенциально улучшая обслуживание в определенных контекстах, требует тщательного рассмотрения, чтобы избежать ловушек тесно связанной презентации и логики.]
object.observe (), хотя еще не является частью ES6, обещает значительное улучшение производительности, изначально поддерживая шаблон издателя/абонента за пределами обработки событий. Декларативные рамки уже используют аналогичную логику, и Object.Observe () еще больше повышает их эффективность.
]
onclick
атрибуты) была нормой, но ее ограничения (читаемость, обслуживание, глобальное загрязнение областей, уязвимости xss) привели к принятиюaddEventListener
. Библиотеки, такие как JQUERY, оптимизировали этот процесс, улучшая масштабируемость и отладку. Тем не менее, addEventListener все еще может привести к утечкам памяти, если закрытия не управляются тщательно, особенно в более старых браузерах.
]
декларативные рамки предлагают убедительную альтернативу, эффективно управляющие данными и пользовательским интерфейсом с помощью таких методов, как виртуальные DOMS (React, Ractive) или объекты контейнеров (Ember, Backbone, RACTIP). Эти структуры часто поддерживают двустороннее привязку данных, упрощение обновлений и поддержание согласованности между DOM и логикой приложения. Это контрастирует с более ручным, императивным подходом, требующим явного манипуляции с DOM.
]
object.observe () предлагает мощный механизм для наблюдения за изменениями объекта, что позволяет более эффективно связывать данные, не полагаясь исключительно на рамки. Несмотря на то, что в настоящее время ограничен в поддержке браузера, он представляет собой значительный прогресс в возможностях реактивного программирования.
]
Заключение:
Оптимальный подход к обработке событий JavaScript зависит от специфики проекта. В то время как декларативные рамки дают значительные преимущества с точки зрения обслуживания и производительности, понимание компромиссов различных моделей, включая нюансы JSaction и Object.Observe (), имеет решающее значение для принятия обоснованных решений.
] дальнейшее чтение:
]
]Крокфорд на JavaScript - эпизод IV: метаморфоза Ajax Google JavaScript Style Guide
]] ]
шаблоны обработки событий:традиционный, встроенный и продвинутый (с помощью библиотек/Frameworks).
]
захват vs. bubbing: направление потока событий в Dom.
]
обработка событий на родительском элементе.
]
повторно используемые решения для общих задач (модуль, прототип, наблюдатель и т. Д.).
]
==
vs.
отладка Javascript:
console.log () Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3