Да, по крайней мере, в какой-то части сообщества есть неуверенные, как бы вы измерили это в целом.
Есть определенно преимущества, вне моей головы:
- Очиститель / Меньший код
- Проще отладить
- Легче изменить
- Проще упаковать
- Производительность
Из чистого объема, подумайте об этом:
<a onclick="someFunction();">
<a onclick="someFunction();">
<a onclick="someFunction();">
<a onclick="someFunction();">
<a onclick="someFunction();">
или это один раз :
$("a").click(someFunction);
Вы можете сделать это с большинством фреймворков через селектор css и т. Д., Обрабатывает много элементов одновременно. Это означает, что в коде сервера вы просто назначаете идентификаторы и классы, клиентскую часть проще обрабатывать отдельно. Например, проще отлаживать: в консоли я могу сделать $('a').unbind('click').click(...something new...);
Еще одним преимуществом является производительность . Если я смогу разделить это на отдельный .js
файл, кэшированный клиентом, то это будет более тонкие веб-страницы и дополнительные данные, которые я не буду отправлять каждый раз. Меньшая веб-страница = более быстрая загрузка.
Вот еще один пример, рассуждающий о том, как это просто, предоставлено некоторое базовое действие через jQuery, но как это будет выглядеть с встроенными событиями?
$("li").hover(function() {
$(this).children().slideToggle();
});
Для сравнения, это огромное количество встроенного кода, даже если вы пропустите часть анимации, это грязно (подумайте mouseenter/mouseleave
, а не mouseover/mouseout
... первое, которое .hover()
использует , сложнее)