2009-04-02 4 views
18

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

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

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

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

+0

Спасибо за объяснения. Я продал: я подключил его к прототипу, над которым я работаю, и вместо того, чтобы тратить 4 часа на запись звёздной рейтинговой системы, я бросил виджет и сделал это через 10 минут. Мое знание JS упростило мод. Woo! – ElBel

ответ

30

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

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

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

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

+2

Я не уверен, что согласен с частью «общего языка». JavaScript так же легко может быть распространенным языком как jQuery (и на данный момент, вероятно, довольно, хотя jQuery, безусловно, набирает популярность). –

+0

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

+0

А, значит, вы имеете в виду общий язык абстракции, о котором вы говорили в первом пункте. Я согласен с этим. –

1

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

1

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

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

+0

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

+0

Согласитесь с @ Daniel здесь. –

+0

Существует разница в размере загрузки. Это может быть тривиально, но это одно из преимуществ цепочки. – VirtuosiMedia

3

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

11

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

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

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

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

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

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

4

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

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

4

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

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

4

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

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

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

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

+0

Эй, ты убедил меня, если не Эллен Б :) – SirDemon

4

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

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

+0

100% согласен - вот почему я использую его даже для самых тривиальных заданий сейчас :) –

1

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

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

1

JQuery - это javaScript в руке дизайнера.

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

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

3

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

3

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

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

1

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

1

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


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

0

JQuery деградирует изящно и это один из самых быстрых (не самых быстрых больше, хотя):

http://mootools.net/slickspeed/

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

:)

+0

Этот тест очень старый, плюс селекторная скорость! = Не по всей скорости. – Jourkey

Смежные вопросы