Каковы преимущества использования Javascript-only по сравнению с JQuery-only?
У меня ограниченный опыт работы с JavaScript и JQuery. Я добавил биты и фрагменты каждого из них на HTML-страницы, но я в основном кодировал серверные вещи на других языках. Я заметил, что хотя теоретически вы можете делать одно и то же, используя любой из двух подходов (и, конечно, вы можете даже смешивать их в одном проекте), существует тенденция всегда начинать использовать JQuery с самого начала независимо от того, что требует проект.
Так что мне просто интересно, есть ли какие-то пунктуальные преимущества не использовать только JQuery, а просто использовать старый добрый JavaScript?
Я знаю, что это выглядит как не вопрос, потому что о нем можно сказать, что «нет определенного ответа» или «его можно обсудить навсегда», но на самом деле я надеюсь на пунктуальные ответы, такие как «Вы можете сделать это в один подход, и вы не можете сделать это с другим ".
Согласно комментарию scrwtp, я имею в виду не только часть DOM Handling. Мой вопрос скорее: JQuery - это библиотека. Для Javascript. Что я нахожу странным в этой библиотеке в отличие от других библиотек для других языков, так это то, что в случае JQyery она, похоже, предназначена для того, чтобы иметь возможность использовать ее исключительно и не нужно напрямую касаться Javascript. Это в отличие от, скажем, Hibernate и SQL, где, хотя библиотека (или, скорее, фреймворк в данном случае, но я думаю, что аналогия по-прежнему применима) берет на себя множество аспектов, вы все равно можете использовать SQL при ее использовании. По крайней мере, для некоторых крайних случаев. Однако в случае JQuery & Javascript вы можете делать все, что вы делаете с Javascript, используя только JQuery (или, по крайней мере, так мне кажется).
Согласно комментарию Stargazer712: да, я согласен с вами, вопрос здесь, как вы выразились, «просто вопрос того, как вы будете использовать JavaScript». Это то, что я действительно хотел спросить, но я сделал несколько плохих формулировок. Вот еще одна аналогия: Spring Expression Language, Это библиотека Java. Вы не можете использовать это без Java, это основано на Java, и через все это вы все еще можете использовать Java. Но на практике вы можете добавить эту библиотеку в проект Java, а затем написать весь свой код, используя язык выражений Spring EL, который фактически делает ваш код совсем не похожим на Java, и это даже меняет парадигму (например, у вас больше нет строгое соблюдение типа при использовании этого). Хотя я понимаю, что JQuery - это просто библиотека JS, мне кажется, что на практике это имеет тот же эффект, что и Spring EL в Java, то есть вы можете использовать его API только в проекте и избегать JavaScript-API. И мне было интересно, хорошо ли это делать, какие могут быть подводные камни и т. Д.
(и да, прочитав ответы каждого, я понимаю, что:
а. мой вопрос несколько бессмысленный до определенного момента
б. даже если бы вопрос был совершенно точным, ответ на него был бы в значительной степени «нет, вы не можете просто использовать JQuery-only все время»
источник
Ответы:
Прежде всего - невозможно использовать только jQuery, все, что делает jQuery, - это добавляет объект $ в вашу глобальную область видимости с кучей методов в нем. Еще более манипулятивные библиотеки, такие как prototype, не являются альтернативой javascript, они представляют собой инструментальные средства для решения типичных проблем.
Основными преимуществами добавления jQuery в ваш набор инструментов будут:
Javascript больше не является просто языком на стороне клиента, и поскольку jQuery зависит от DOM, он является ужасным кандидатом для перехода на сервер. Я настоятельно рекомендую уделить некоторое время пониманию того, почему вы используете jQuery (задание этого вопроса - отличный первый шаг!), И оценке того, когда это необходимо. jQuery может быть опасным, вот некоторые из основных опасностей:
В конечном счете, jQuery - невероятно полезная и полезная библиотека при правильном использовании. Тем не менее, это не альтернатива JavaScript. Это библиотека, такая же как zepto.js , YUI , Dojo , MooTools и Prototype - одна из которых может быть намного лучшим выбором для вашего текущего проекта.
Javascript - это неправильно понятый язык, и только недавно большинство людей рассматривает его как нечто большее, чем язык сценариев. Я действительно рекомендую прочитать об этом больше, вот несколько хороших мест для начала:
Редактировать 07/2014 - я заметил, что этот пост все еще привлекает внимание, поэтому я добавил кучу ссылок. Они не в определенном порядке, но должны быть полезны.
Я уверен, что есть намного больше отличных ресурсов, о которых я не думаю или не знаю, другие ответчики могут смело добавлять их в этот список.
источник
$.ajax
), которая выплевывает наборы объектов-оболочек элементов dom, предназначенных для того, чтобы сделать методы DOM в целом намного менее PITA, делая их более краткими, имея методы автоматическое зацикливание наборов объектов dom всякий раз, когда это имеет смысл, и совместное использование общего, предсказуемого API-интерфейса между браузерами (что не так уж важно, IE <= 8).Есть преимущества, но это спорно, действительно ли они перевешивают недостатки.
Основным является то, что вы экономите пропускную способность и получаете более быстрые ответы. JQuery добавляет еще ~ 30 КБ к вашему ответу. В некоторых сетях (и в некоторых странах) это может означать еще несколько миллисекунд. Однако, с другой стороны, вы можете довольно легко настроить для него кеширование, используя свой веб-сервер (или, как сказал Сион, используйте его с сайта Google, чтобы оно не влияло на ваш собственный, и все же оставалось в кэше).
Во-вторых, вам может потребоваться лишь очень простая функциональность, и только загрузка и настройка jQuery могут занять больше времени, чем простая реализация того, что вам нужно.
И, наконец, вы, возможно, захотите создать свою собственную платформу, что в основном является плохой идеей, но у некоторых людей есть свои причины.
Однако, если вы отказываетесь от jQuery просто потому, что вас пугает кривая обучения, вам следует пересмотреть. Тем более, что он достаточно нежный.
источник
Насколько я знаю, на самом деле есть только два преимущества использования ванильного JavaScript по сравнению с такой библиотекой, как JQuery , MooTools и т. Д.
Стоит указать, почему вы хотите использовать библиотеку JavaScript, для которой есть множество:
Раньше я работал в интернет-магазине, который был непреклонен в использовании ванильного JavaScript, потому что jQuery был большим и страшным. Это решение, в основном под влиянием одинокого «разработчика javascript», послужило источником множества ошибок браузера и медленной разработки, и попытка проникнуть в его кодовую базу была невероятной. Написание собственного фреймворка может показаться хорошей идеей, но если вы хотите нанять новых разработчиков, они не смогут быстро вмешаться и помочь. Тогда есть также вопрос автобусного фактора, чтобы рассмотреть.
Как я уже говорил, я раньше работал там ... в других местах были зеленые пастбища. : ^)
источник
Я случайно смешал использование обоих. Основная причина этого заключается в том, что для некоторых приложений (например, расширений Chrome) вам не требуется межбраузерная поддержка. Это означает, что я могу воспользоваться новыми достижениями, такими как css3, которые с такими вещами, как переходы, могут значительно упростить ваш код по сравнению с использованием jquery.
Также я часто делаю что-то на заказ. Во что бы то ни стало, как говорили другие, вы не должны заново изобретать колесо. Но когда вас просят сделать какую-то сумасшедшую функциональность, я часто обнаруживаю, что гораздо проще самому написать его, чем попробовать взломать какой-нибудь плагин jquery, который близок, но не идеально подходит.
Я также работал с разработчиками, которые работают только с jquery. И я должен сказать, что они скомпрометировали функциональность гораздо чаще, чем если бы они не смогли найти плагин jquery, который делал то, что хотел.
В какой-то момент в веб-разработке вам будет предложено сделать что-то, не упакованное заранее в библиотеке. Поэтому в этот момент вам лучше убедиться, что вы понимаете, как работает базовый язык.
Так что TLDC : используйте оба, вы находитесь в невыгодном положении, используя только ваниль, и вы в невыгодном положении, если вы не знаете ваниль внутри и снаружи и настаиваете на том, чтобы всегда использовать jquery.
источник
document.querySelectorAll
за кулисами.Единственное, что я могу думать о том, что вы не можете обойтись без JQuery, это использовать плагины JQuery; даже тогда вы можете написать свою собственную библиотеку JS, которая предоставит именно то, что нужно плагину.
Подумайте об этом так: JQuery - это библиотека Javascript с открытым исходным кодом, написанная на Javascript; Вы можете посмотреть на источник и тем самым научиться делать все, что он делает.
Вы не можете использовать JQuery, не используя старый добрый Javascript. Вы, вероятно, не будете использовать
document.getElementById
, но вы все равно будете определять функции и переменные стандартными способами Javascript; Вы могли бы даже написать стандартныйfor
цикл.Основное преимущество использования JQuery почти такое же, как и в любой другой сторонней библиотеке на любом языке: вам не придется писать столько кода для реализации логики, специфичной для вашего приложения.
Не позволяйте размеру отпугнуть вас. Версия CDN является ~ 33k загрузки , который будет кэшируются браузером пользователя после первой страницы хитом.
источник
Если вы беспокоитесь о производительности, попробуйте использовать vanilla js, когда это возможно. фреймворки не только добавляют накладные расходы полосы пропускания, но и накладные расходы обработки. И jQuery поставляется с совместимостью с браузерами и для довольно старых браузеров.
Если вы работаете над мобильными приложениями или играми (или обоими вместе), вам прежде всего нужны производительность и эффективность использования ресурсов.
jQuery и плагины могут ускорить вашу разработку, но особенно если вы полагаетесь на сторонние плагины jquery, вы должны знать, что они делают внутри. Многие из них являются плохими примерами качества и эффективности кода.
jQuery может быть в 2-10 раз медленнее, чем собственный JavaScript. И это может легко побудить разработчиков не правильно проектировать свой интерфейс и слишком полагаться на селекторы jQuery, которые намного медленнее, чем нативные.
источник