мне перейти от прототипа к JQuery? - PullRequest
8 голосов
/ 01 апреля 2010

Наконец, я чувствовал, что jQuery постепенно становится стандартом де-факто в библиотеках JS (я могу ошибаться!) Или, по крайней мере, он более активен, чем остальные фреймворки. *

Например, я искал хороший календарь с открытым исходным кодом, такой как Componente, и нашел http://fullcalendar.vinsol.com/, основанный на jQuery.

Мы использовали Prototype для очень маленьких вещей, таких как его селекторные возможности ($ функция как ярлык для document.getElementById, в основном), выполнение некоторого фрагмента JS при загрузке страницы и выпуск некоторых очень простых Аякс звонит.

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

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

Редактировать: некоторые полезные ресурсы:

Ответы [ 8 ]

9 голосов
/ 01 апреля 2010

Prototype и JQuery покрывают очень похожие поля. В течение многих лет я профессионально использовал Prototype в качестве основного JS Framework и перехожу на JQuery. И вот почему:

  • JQuery быстрее . Прототип занимает последнее место в всех сравнениях производительности, которые я видел (Случайный выбор здесь ). У меня также давно существует субъективное впечатление, что эффекты Prototype в целом медленнее, особенно на старых машинах.

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

Моя единственная неприязнь:

  • Код JQuery выглядит ужасно. Мне очень нравится JQuery и его философия очень , но я часто ненавижу , глядя на код. Если кто-то придумал диалект JQuery, который выглядит так же красиво и структурировано, как простой ванильный JavaScript, я с радостью буду на борту. :)

Комментарии: Дополнительные разъяснения о том, что мне не нравится в стиле кодирования jQuery.

Одним словом: скобки. Тысячи и тысячи из них :)

Серьезно, хотя. Я понимаю, что многие из того, что считается «стилем jQuery», являются ярлыками и сокращениями, которые не являются обязательными для использования. Тем не менее, с точки зрения читабельности и удобства сопровождения кода, я нахожу большие фрагменты кода jQuery намного более сложными для чтения и изучения. Да, с ростом опыта работы с jQuery это станет намного проще, но я хочу, чтобы мой код был читаемым даже для посторонних. В связи с этим, JQuery не идет в правильном направлении IMO. Большая часть кода проста безобразна. На данный момент я единственная серьезная критика этой замечательной основы.

Метод цепочки, хотя @noah, и такие вещи, как новый .delay() или как его зовут, я думаю, что это просто потрясающе. Я ничего не говорю против этого.

6 голосов
/ 01 апреля 2010

Насколько я знаю, Prototype и jQuery в основном перекрываются, за исключением того, что jQuery фокусируется в основном на манипуляциях с DOM, ajax, событиями и т. Д., И на самом деле не обладает некоторыми возможностями, которые Prototype имеет, такими как классы, наследование и т. Д.Однако, если вам не нужны эти вещи, а нужна только среда для кросс-браузерного манипулирования DOM, ajax, событий и т. Д., То я думаю, что jQuery - это то, что нужно.

4 голосов
/ 01 апреля 2010

Чтобы ответить на ваши вопросы напрямую: Да, вы должны переключиться. И да, вы правы.

Я знаю, вы сказали, что вам не нравятся скобки ... можете ли вы предоставить фрагмент кода прототипа, который вы считаете красивым (я сделаю jQuery-itize для сравнения)?

4 голосов
/ 01 апреля 2010

Вы можете использовать их вместе. Просто позвоните jQuery.noConflict(); после загрузки jQuery. Тогда вам придется написать jQuery("whatever") вместо $("whatever"). Прототип предлагает множество функций, которых нет в jQuery.

Тем не менее, Prototype вроде как на выходе. JQuery теперь король, и по ряду довольно веских причин. Если вам нужны последние плагины и виджеты, у jQuery они будут.

Underscore.js предлагает большую часть тех же функций, что и Prototype, не мешая прототипам объектов и глобальному пространству имен. Подчеркивание плюс jQuery должны сделать переход с Prototype довольно простым.

2 голосов
/ 02 апреля 2010

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

2 голосов
/ 01 апреля 2010

Я использую Prototype с 2006 года и повторяю чувства Пекки по поводу уродливого кода. Прототип более элегантный.

Я был убежденным сторонником сообщества Prototype (+ Scriptaculous), но, к сожалению, Prototype теряет разум и долю рынка. Карьера может быть построена на знании jQuery, не так много для Prototype.

Кажется, что jQuery люди кажутся более счастливыми, используя плагины, не зная, как они работают, тогда как люди, использующие Prototype, кажутся более опытными программистами и стремятся сами создавать то, что им нужно.

При этом мой переход на jQuery был не таким уж болезненным. Функциональность практически одинакова, только с разными именами. Доступно намного больше документации и примеров кода, что облегчает их выбор.

Каркасы - это движущиеся цели, иногда перепрыгивающие друг друга с точки зрения скорости и характеристик. Все продолжают улучшаться. Сказать, что Х лучше, чем Y, со временем изменится

Я думаю, что спасительная грация Прототипа может быть Scripty2 . Это удивительный новый движок анимации, использующий Prototype. Если это завоевывает популярность (и выходит на рынок, это даже не в бета-версии), может возникнуть всплеск интереса к Prototype. Кроме того, я думаю, что у него всегда будут свои сторонники, но он исчезнет от мейнстрима.

0 голосов
/ 01 апреля 2010

Я думаю, ты должен. Я использую jquery неукоснительно, и я не Javascript Pro. Это простота использования, я думаю, это одна из самых сильных вещей в этом.

0 голосов
/ 01 апреля 2010

Я думаю, тот факт, что Microsoft интегрировала его в ASP.NET Ajax Framework , говорит о мирах для jQuery. Мой нынешний работодатель стандартизировал его в прошлом году, и я могу найти больше сообщений о вакансиях, специально с просьбой предоставить jQuery и любую другую библиотеку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...