Недостатки использования jQuery? - PullRequest
12 голосов
/ 18 марта 2011

Я слышал много-много хороших вещей для jQuery, но каковы некоторые недостатки текущей версии jQuery и какие функции вам нужны в следующей версии jQuery?

Ответы [ 6 ]

14 голосов
/ 18 марта 2011

Большой, большой недостаток в том, что его абстракция скрывает «некрасивые части» JavaScript, что делает изучение JS намного сложнее. Это проблема, которая преследует сообщество JS. В итоге у вас есть дизайнеры / разработчики, которые могут делать простые ролловеры и слайд-шоу, но сталкиваются с большими проблемами, когда в игру вступают реальные манипуляции с DOM.

Другим недостатком является не только размер, но и аморфность jQuery. С каждым новым браузером (особенно Internet Explorer) за кулисами проделывается немало работы по расширению базы кода. Это было наиболее очевидно с IE8, в котором изрядное количество jQuery пришлось переписать, чтобы хотя бы соответствовать новейшей версии IE. В результате вы получаете огромную коллекцию методов и свойств (более 200 КБ, начиная с jQuery 1.5). Даже с широким набором опций для сжатия / кэширования файлов вы все равно будете испытывать приличное количество времени загрузки (несколько секунд при хорошем соединении).

Один из таких вариантов - через сеть распространения контента Google (CDN). Он может кешировать jQuery для вас и привести к более быстрому времени загрузки. Однако теперь вы полагаетесь на два источника, чтобы работать безупречно. Недавно Google выпустил одну из новых (> = 1.5) версий jQuery. Это привело к некоторой несовместимости на несколько часов и создало проблемы для jQueryUI и различных плагинов. Как я уже говорил ранее, вы полагаетесь на два источника, чтобы всегда работать. Сохранение собственной локализованной версии может снизить этот риск.

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

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

3 голосов
/ 18 марта 2011

По сравнению с чем? В каком контексте? Само по себе трудно сказать, что у него есть какие-то недостатки.

Но в определенных ситуациях есть некоторые недостатки:

  • это большое. Библиотека jQuery - это хит на вашем сервере, который должен загрузить конечный пользователь. Минимизация, CDN'ing, кэширование и т. Д. Помогают минимизировать его, но если вы ищете сверхлегкое решение JS, его написание с нуля, скорее всего, даст вам небольшой размер файла.

  • большая часть манипуляций с DOM CSS, которые она делает, не обязательно оптимизирована с помощью POV доступности. Становится лучше ... особенно все, что делает ARIA, которую делает группа накаливания

  • не все поклонники jQuery UI. Это хорошо, конечно. Но тоже немного тяжеловато, ИМХО.

  • может быть немного непонятно, если вы не понимаете некоторые основы JS. Хорошо понимать, что jQuery иногда делает за кулисами.

Но, честно говоря, вам нужно копать, чтобы действительно жаловаться на это. ИМХО, jQuery + StackOverflow снова сделал веб-разработку увлекательной. ; О)

3 голосов
/ 18 марта 2011

Если вопрос «Должен ли я использовать библиотеку для JavaScript?» Ответ однозначный да. Худшее в javascript - это разные реализации, и использование библиотеки js значительно облегчит эту проблему. С 2005 года или около того, когда появился прототип, не было проделано много профессиональной работы с javascript без использования какой-либо библиотеки.

Если вопрос больше «Каковы относительные преимущества JQuery?», Вот некоторые моменты

  • Это всего лишь библиотека абстракций dom. Если вам нужно сделать больше, чем небольшие анимации или изменения стиля, одного jquery недостаточно.

  • Это, как говорится, это все, что большинство людей хотят сделать, и это большая часть того, почему он так популярен. Проблема с чрезвычайной популярностью заключается в том, что люди, которые не являются серьезными разработчиками javascript, склонны думать, что javascript == jquery, на самом деле это не так.

  • По сути, если вы добавляете на страницу какое-то тривиальное поведение, jquery - это фантастика. Если вы создаете веб-приложение «RIA», вам нужно больше смотреть на додзё (или даже росток, в зависимости от того, как далеко вы хотите зайти). Если вы находитесь где-то посередине, MooTool сделает все, что вам нужно.

  • Если вы относитесь к тому типу людей, которые предпочитают создавать собственный набор инструментов, а не переходить на фреймворк типа «Все и кухонная мойка», jquery + underscore + backbone приведет вас довольно далеко.

3 голосов
/ 18 марта 2011

Для меня любые недостатки jQuery заключаются не в том, какие функции отсутствуют, но в каких ненужных функциях .

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

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

  • Кодовая база просто продолжает расти. Разархивированные и сжатые файлы размером менее 30 Кб все еще впечатляют, но они достигают размера, в котором они больше, чем любой файл CSS или изображение заголовка, которое мне когда-либо приходилось загружать. Для этого требуется подход типа «монолитное ядро» к библиотеке Javascript, что, вероятно, является важным фактором ее успеха - он включает в себя все, что вам нужно, в одном месте, а не делает его более модульным.

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

1 голос
/ 18 марта 2011

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

Как только вы заинтересуетесь работой на чистом JS, основным недостатком будет то, что он будет ориентирован на DOM.Поскольку ваше программирование становится все более ориентированным на данные, смещение в сторону DOM может иногда мешать.

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

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

Сказав все это, яЯ определенно фанат jQuery, и это моя библиотека JS.Я считаю, что сильные стороны намного перевешивают слабые стороны, и что они постоянно улучшаются.

0 голосов
/ 18 марта 2011

Основным недостатком (кроме того факта, что он абстрагирует некоторые ключевые понятия javascript) является тот факт, что он объединяет все, поэтому библиотека будет по своей природе большой.

Большие файлы javascript = больше нагрузкивремя.

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

...