Привет, Уважаемый разработчик!
Как ты уже понял, сегодняшней темой обсуждения станет JQuery – а именно рентабельность его использования на сайтах и можно ли полностью отказаться от него?
До недавнего времени JQuery был стандартом в сайтостроении. Любая, даже самая простая функция писалась с помощью этой библиотеки, но откуда такая популярность и в чем ее проблема?
Что не так с JQuery ?
Казалось бы , мы вступили в эпоху быстрого интернета. В городах появляется 5G, другие компании заявили о разработке уже шестого поколения связи, а скоростью 300 Мбит\с никого не удивишь. И вот смотря на жалкие 90кб, которые весит библиотека ( а в минимизированном виде все 32кб), понимаешь, что сервер сможет всю её передать менее чем за 50мс. Это очень мало!
Но дьявол кроется не в весе библиотеки, а в количестве строк, а их там 10 000. И как мы уже говорили, некоторые сайты используют JQuery для написания даже самых примитивных функций, а значит они не используют и 1% возможностей библиотеки.
Углубляясь в работу браузера, мы понимаем, что он читает строчку за строчкой, оценивает их и записывает в память огромное количество переменных, а затем удаляет неиспользуемые. Это требует немалых вычислительных ресурсов от процессора. Этот процесс напрямую влияет на время рендера страницы, и если у ПК большой запас мощности, то мобильные телефоны пока не могут этим похвастаться.
Столкнем лоб в лоб одинаковые функции.
А теперь взглянем на результаты их выполнения:
Выполняя эту функцию, но с использованием JQuery, браузер изрядно попотел и выдал результат спустя 2.5 секунды, при этом без библиотеки, он справился всего за 0.8 секунды. Это в 4 раза быстрее!
Откуда же такая популярность ?
У этой популярности вполне очевидная природа. До недавнего времени JavaScript был болью у разработчиков. Писать на нём было сложно и неудобно, в то время как JQuery предлагал заметно уменьшить количество строк исполняющего скрипта. Это породило огромное комьюнити, которое делилось своими работами в интернете (Привет, StackOverFlow), поэтому молодым разработчикам оставалось научиться хорошо искать в интернете.
Но время не стоит на месте и JavaScript тоже. Создатели языка изрядно поработали над синтаксисом и возможностями и упростили жизнь, кто зависим от JS. Давайте перейдём к примерам:
AJAX запросы
Получение данных с URL в JQuery выглядело так:
$.ajax({ url: ‘/api.json’,
type: ‘GET’
success: (data) => {
console.log(data)
}
})
Ну а в JavaScript теперь так:
fetch(‘/api.json’)
.then(response => response.text())
.then(body => console.log(body))
не намного то и сложней, не правда ли?
То же самое обстоит и с выборкой элементов и манипулированием их свойств. Код становится ненамного сложнее, а в некоторых местах даже проще(разумеется при использовании стрелочных функций).
О поддержке браузеров.
Сегодня о поддержке браузеров приходится задумываться намного меньше чем раньше и некоторые функции могут не работать только на Internet Explorer или Opera Mini, но если от первого даже сами создатели(Microsoft) отказались ещё летом 2021 года, то у второго совсем нету активной аудитории. Но даже если перед вами поставили нестандартную задачу с поддержкой браузеров их эпохи динозавров, тогда можно использовать полифиллы для самых распространенных функций.
EventListener – https://github.com/github/eventlistener-polyfill#readme
Fetch – https://github.com/github/fetch#readme
Smoothscroll – https://github.com/iamdustan/smoothscroll#readme
ClassList – https://github.com/yola/classlist-polyfill#readme
Если сомневаетесь насчёт поддержки браузера других функций, то можно воспользоваться https://caniuse.com/
Забастовка против JQuery
Благодаря улучшению ванильного JS и широкой поддержке современных браузеров, некоторые интернет-порталы полностью отказались от JQuery. К их числу можно отнести GitHub. Но WordPress не стал отказываться от библиотеки и этому есть объяснение:
В репозитории WordPress существует огромное количество плагинов и тем, которые зависимы от JQuery и его отключение просто уронит сотни тысяч сайтов.
В защиту JQuery
Было бы нечестно говорить только об отрицательных сторонах JQuery, ведь есть положительные. Команда, которая трудится на улучшением библиотеки, делает действительно хороший продукт. Хотя обновления выпускаются не так и часто, но они уже значительно ускоряют работу библиотеки, а также предоставляют много готовых решений, которые сильно помогают в разработке. К их числу можно отнести табы, слайдеры, попапы, меню и тд.
Итог:
Резюмируя выше сказанное, мы приходим к выводу, что JQuery сегодня – это рудимент, который остался в ходе эволюции Веб-разработки. Просто отрезать его будет довольно сложно, поэтому мы должны плавно переходить на современный и быстрый метод разработки, стараясь избегать дополнительных фреймворков.