Подтвердить что ты не робот

Почему я хочу использовать jQuery?

(Я понимаю, что кто-то другой задал аналогичный вопрос, и он был закрыт как "аргументированный", но мне действительно интересно понять аргументы вокруг этого.)

Я хорошо знаю JavaScript. Я писал это профессионально уже много лет. Я усвоил много кросс-браузерных несовместимостей и эскизности, знаю, что манипулирование DOM, как и задняя часть моей руки, работало с некоторыми из лучших веб-разработчиков в отрасли и собрало много их моджо.

Я просматривал jQuery. Я понимаю суть библиотеки javascript (сколько раз я писал анимацию, getElementsByClass и функции hide/show?). Но, честно говоря, кажется, пустая трата времени, чтобы изучить совершенно новый синтаксис, который не менее сложный. Кажется, я бы бил головой о стену, чтобы изучить совершенно новый интерфейс с тем же старым JavaScript.

Я не технически инженер, поэтому, может быть, я что-то упустил. Может ли кто-нибудь описать компромиссы jQuery? Действительно ли быстрее учиться и понимать синтаксис jQuery, чем просто изучать JavaScript?

4b9b3361

Ответ 1

Есть несколько больших преимуществ для использования фреймворка для доморощенного/рукописного кода:

  • Абстракции. Я уверен, что вы очень гордитесь тем фактом, что у вас достаточно JS, чтобы писать анимации с нуля. Вы должны быть! Однако абстрагирование общей функциональности от вас самих на самом деле очень освобождает. Вы просто вызываете метод и знаете, что внутренности будут выполнены и выполнены хорошо. Даже если вы очень быстро пишете материал низкого уровня самостоятельно, это еще раз вы потратили на это, а не на решение сегодняшних проблем.

  • Общий язык. Использование общей структуры - это говорить на общем языке. Вы можете очень легко сотрудничать с другими разработчиками, и каждый может забрать, где другие остановились без трений. (По сравнению с вступлением в приложение, которое использует встроенную библиотеку для вещей, которые может выполнять jQuery.)

  • Эксперты. Люди, работающие над jQuery, являются богами JavaScript. Я действительно, очень хорошо разбираюсь в JavaScript, и вы, вероятно, тоже, но там большая разница между нормальным хорошим и хорошим jQuery. Команда безумно хороших людей постоянно присматривает за небольшим набором общих функций - настраивая ее, настраивая ее, улучшая ее, чтобы сделать все возможное. Это представляет собой огромное количество человеко-часов, когда один человек, как вы или я, просто не может воспроизвести, независимо от того, насколько мы хороши. И если вы так же хороши, как ребята jQuery, вы можете выиграть, объединив свой талант с их помощью и внося свой вклад в кодовую базу jQuery. Это плавильный котел безумного таланта.

Ответ 2

Я не технически инженер, поэтому, может быть, я что-то упустил. Может ли кто-нибудь описать компромиссы jQuery? Действительно ли быстрее учиться и понимать синтаксис jQuery, чем просто изучать JavaScript?

jQuery больше, чем "просто другой интерфейс" для Javascript. Это позволяет вам выразить себя более компактными и суженными, чем соответствующая реализация Javascript. В то же время, он яснее и гораздо мощнее. В частности, вы получаете следующие преимущества:

  • Выразительность. jQuery - это, по сути, DSL для манипулирования и запросов DOM. Эта специфика является основным источником ее полезности и эффективности.

  • Кросс-браузер. В значительной степени jQuery "пишет один раз, запускается где угодно". Даже в 2009 году это все еще удивительно редкий подвиг для веб-платформ. Это радует и облегчает знать, что вам не придется тратить время на отладку неясных проблем на IE6 (ну, большую часть времени).

  • Высокая документация.. Как разработчик, я выигрываю API и фреймворки, которые нашли время, чтобы изложить, что должны делать все движущиеся части. Ничто не является более обнадеживающим, чем знание того, что (1) все достаточно стабильно, что написание документации - это не попытка попасть в движущуюся цель, и (2) вещи достаточно полезны, что они привлекли достаточное количество людей, чтобы полностью отразить документацию.

В целом разница между Javascript и jQuery аналогична разнице между сборками и языками программирования высшего порядка. Хотя они оба технически являются "интерфейсом для машинного языка" и могут делать подобные вещи, последний считается гораздо более мощным из-за того, насколько легко он представлять вещи и быстро развиваться.

Ответ 3

Вы не можете изучать jQuery, не изучая JavaScript, и вы не можете быть гуру jQuery, не являясь гуру JavaScript.

Тем не менее, гораздо быстрее делать вещи с jQuery, чем с "голым металлом" JavaScript. Более того, способ работы с jQuery находится на гораздо более абстрактном уровне, чем тот, который работает с JavaScript "голого металла". Кроме того, синтаксис jQuery является очень простым и совсем не трудным для изучения, хотя способ, которым вы думаете о jQuery, сильно отличается от того, как вы думаете об "голом металле", но позволяет вам делать гораздо больше, гораздо быстрее.

Ответ 4

поддержка сообщества

другие разработчики пишут и тестируют код, позволяют вам делать то, что у вас просто не хватает времени. Это не о том, чтобы делать что-либо, что вы не знаете, как это сделать, о том, чтобы делать что-то быстро, эффективно и очень качественно (его уже тестировали).

Ответ 5

Из звуков этого, вы знаете много того, что jQuery знает о DOM, и я могу только предположить, что вы заработали для себя хороший набор инструментов DOM для себя на протяжении многих лет, который включает в себя все эти знания. Короче говоря, нет, вам не нужно использовать jQuery. Однако некоторые из нас не знают о DOM, и jQuery выравнивает игровое поле, чтобы мы могли продолжить работу для наших клиентов.

Это не значит, что вы не должны изучать jQuery (а не использовать его). Вы можете забрать несколько вещей, которые не знали. 3 основные функции, отличающие его от других библиотек DOM (включая ваши собственные):

  • встроенная поддержка синтаксиса селектора CSS, полезная для поиска элементов
  • которые работают с набором обернутых элементов
  • цепочки. Каждый метод в jQuery.prototype(с поведением "setter" ) возвращает this

Лично, 1) и 3) не имеют высокой премии. Но 2) оказывается огромным для меня. Я никогда не думал до тех пор, пока jQuery, насколько мой код имел тенденцию работать на множестве узлов, а не на одном node (если бы кто-то спросил меня, я бы догадался о противоположной тенденции). 2) практически удалил все циклы for из моего кода (или .forEach или, как бы то ни было, я имел тенденцию абстрагировать его), что на самом деле довольно освобождало. Теперь я замечаю это редким случаем, когда мой код должен работать с каким-то одним элементом.

Ответ 6

Одна вещь, о которой я не упоминал, заключается в том, что библиотека написана для работы с кросс-браузером в широком диапазоне популярных браузеров и платформ: IE6 +, Firefox 2+, Safari 3 +

Это само по себе достаточно, чтобы использовать jQuery, чтобы написать свой собственный JavaScript и самому беспокоиться о проблемах с перекрестным браузером.

Ответ 7

Скорость разработки и поворота кода.

Ответ 8

Одна вещь, о которой я не упоминал в других ответах, заключается в том, что в конечном итоге кому-то придется поддерживать ваш код. Если все это обычае, у них будет более грубое время, чем при использовании более стандартной библиотеки. Если это вас не волнует, и вы не думаете, что вам, вероятно, понадобятся какие-либо из действительно гладких модулей jQuery, то продолжайте то, что вы делаете.

Ответ 9

Для меня есть несколько преимуществ, таких как скорость разработки и т.д.

Но в конце дня это сводится к одному: Он удаляет ОГРОМНОЕ количество кросс-браузера, которое может съесть столько времени и ресурсов, поэтому мне не нужно иметь дело с ним

Ответ 10

jQuery позволяет вам писать более короткий, более чистый код, который легко понять. Многие используют его, поэтому есть много плагинов, которые работают вместе с ним, сводя к минимуму раздувание. То же самое может быть не в отношении вашей личной библиотеки.

Ответ 11

Если вы хорошо знаете JavaScript, вы также должны знать, что синтаксис jQuery не отличается от синтаксиса JavaScript.

То, что вы могли бы иметь в виду, - это идиома chaining (используется везде в jQuery), которая, похоже, сильно отличается от кода другого типа. Ну, есть причина для этого, потому что он действительно хорошо связан с тем, как работает DOM.

Ответ 12

Если вы действительно знаете JavaScript, вы будете работать со скоростью jQuery в течение недели. Если вы еще не знаете свой путь вокруг JavaScript, добавление слоя сверху может принести больше вреда, чем пользы. Но это как и все остальное!

Вы собираетесь писать лучше и проще понимать JavaScript в более быстром темпе и только один раз -— не один раз в браузере. Даунсайд? Вы собираетесь придерживаться еще 50 Кбайт JavaScript. Что такое кеширование для:)

Ответ 13

JQuery - это javaScript в руке конструктора.

Это так же просто, как писать стили CSS на элементе.

Также Jquery проще всего понять, написать поддержку, добавить плагины.

Ответ 14

Я работал над программой галереи для клиента (которая в настоящее время демонстрирует необъяснимое поведение в IE6 и 7 - неожиданность, неожиданность), но я обнаружил, что когда я переключился с bare-metal Javascript на jQuery, многие работы получили много Для меня это дает доступ к CSS-представлению DOM при написании Javascript, что делает обход и манипуляцию более интуитивными. Кроме того, кросс-браузерная совместимость и краткость замечательны.

Ответ 15

На самом деле неважно, является ли jQuery отличным или ужасным. Это теперь мощная JS-библиотека, используемая на огромном количестве страниц, и будущим браузерам придется приспособиться к ней или считаться самим собой.


Что мне не нравится в jQuery: я не очень рад тому, как он игнорирует браузеры мобильных телефонов в своих тестовых наборах. Он натягивается на все виды страниц на мобильных телефонах, и все же он не прилагает никаких усилий, чтобы гарантировать, что он хорошо работает на них.

Ответ 16

jQuery изящно деградирует, а один из - самый быстрый (но не самый быстрый):

http://mootools.net/slickspeed/

Есть много других фреймворков, и в зависимости от того, что вы выберете, вы, вероятно, не ошибетесь, но, используя JQuery самостоятельно, я определенно рекомендую его.

:)