Наконец я чувствовал, что jQuery медленно становится defacto стандартом в библиотеках JS (я мог бы быть неправым!), или по крайней мере который более активен, чем остальная часть платформ.
Например, я искал прекрасный календарь с открытым исходным кодом как Componente и нашел http://fullcalendar.vinsol.com/, который основан на jQuery.
Мы использовали Прототип для очень небольших вещей, как его селекторные возможности ($
функционируйте как ярлык для document.getElementById
, главным образом), выполняя некоторую часть JS, когда страница загружается и издавать некоторые очень простые приказы Ajax.
Таким образом, я предполагаю, что миграция должна быть довольно прямой, но я хотел бы знать профессионалов / недостатки миграции от Прототипа до jQuery.
С другой стороны, я предполагаю, что наличие их обоих вместе не является хорошим выбором, особенно принимая во внимание, что миграция должна быть довольно простой.Я прав?
Править: некоторые полезные ресурсы:
Prototype и JQuery охватывают очень похожие области. Я использовал Prototype в качестве основного JS Framework в течение многих лет профессиональной деятельности, и сейчас я перехожу на JQuery. Вот почему:
JQuery быстрее. Prototype занимает последнее место во всех сравнениях производительности, которые я видел (случайный выбор здесь). У меня также давно сложилось субъективное впечатление, что эффекты Prototype в целом медленнее, особенно на старых машинах.
JQuery кажется более популярным, не только на Stack Overflow. Что означает, что получить поддержку намного проще, а количество доступных плагинов и готового кода намного больше. Для меня это не главная причина, но вместе с общим впечатлением, что jQuery - более технически грамотная платформа, выбор стал очевиден.
Единственное, что мне не нравится:
По поводу комментариев: Дополнительное разъяснение того, что мне не нравится в стиле кодирования jQuery.
Одним словом: скобки. Тысячи и тысячи их :)
Серьезно. Я понимаю, что многое из того, что считается "стилем jQuery" - это сокращения и ярлыки, которые можно использовать по своему усмотрению. Тем не менее, с точки зрения читабельности и сопровождаемости кода, я нахожу большие куски кода jQuery гораздо более трудными для чтения и понимания. Да, это станет намного проще с ростом опыта работы с jQuery, но я хочу, чтобы мой код был читабельным даже для совершенно постороннего человека. В этом отношении jQuery движется не в том направлении, IMO. Большая часть кода просто уродлива. Это мое единственное серьезное замечание к этому замечательному фреймворку на сегодняшний день.
Цепочки методов, @noah, и такие вещи, как новая .delay()
или как она там называлась, я считаю совершенно замечательными. Я не говорю ничего против этого.
Насколько я знаю, Prototype и jQuery в основном совпадают, за исключением того, что jQuery фокусируется в основном на манипуляции DOM, ajax, событиях и т.д., и не имеет некоторых возможностей, которые есть у Prototype, таких как классы, наследование и т.д. Однако, если вам не нужны эти вещи, а нужен только фреймворк для кроссбраузерного манипулирования DOM, ajax, событий и т.д., то я думаю, что jQuery - это то, что вам нужно.
Вы можете использовать их оба вместе. Просто вызовите jQuery.noConflict ();
после загрузки jQuery. Тогда вам нужно будет написать jQuery («что угодно»)
вместо $ («что угодно»)
. Prototype предлагает множество функций, которых нет в jQuery.
Тем не менее, Prototype находится в процессе выхода. jQuery сейчас король, и по некоторым довольно веским причинам. Если вам нужны новейшие плагины и виджеты, они будут у jQuery.
Underscore.js предлагает большую часть тех же функций, что и Prototype, но при этом не вмешивается в прототипы объектов и глобальное пространство имен. Underscore плюс jQuery должны упростить переход с Prototype.
Я использую Prototype с 2006 года и разделяю чувства Пекки по поводу уродливого кода. Прототип более элегантен.
Я был стойким сторонником сообщества Prototype (+ Scriptaculous), но, к сожалению, Prototype теряет долю внимания и долю на рынке. Карьера может быть построена на знании jQuery, а не только на знании Prototype.
Кажется, что люди, использующие jQuery, более счастливы, используя плагины, не зная, как они работают, тогда как люди, работающие с прототипами, кажутся более заядлыми программистами и склонны создавать то, что им нужно, самостоятельно.
При этом мой переход на jQuery не был таким уж болезненным. Функциональность почти такая же, только с разными названиями. Доступно гораздо больше документации и примеров кода, что упрощает освоение.
Каркасы - это движущиеся цели, иногда превосходящие друг друга по скорости и характеристикам. Все продолжают улучшаться. Утверждение, что X лучше, чем Y, со временем изменится
Я думаю, что спасительная благодать Prototype может быть Scripty2 . Это потрясающий новый движок анимации, использующий Prototype. Если это завоюет популярность (и выйдет на рынок, даже не в бета-версии), интерес к Prototype может возродиться. Помимо этого, я думаю, что у него всегда будут сторонники, но он исчезнет из мейнстрима.
Я думаю, что тот факт, что Microsoft интегрировала его в ASP.NET Ajax Framework , говорит о jQuery. Мой нынешний работодатель стандартизировал его в прошлом году, и я могу найти больше объявлений о вакансиях, в которых конкретно просят jQuery и любую другую библиотеку.
Чтобы ответить прямо на ваши вопросы: Да, вам следует переключиться. И да, вы правы.
Я знаю, вы сказали, что не любите скобки ... не могли бы вы предоставить фрагмент кода прототипа, который вы считаете красивым (я использую jQuery-itize для сравнения)?
Думаю, стоит. Я неукоснительно использую jquery, и я не Javascript Pro. Я думаю, что простота использования - одна из самых сильных сторон этого инструмента.
если вы хотите получить другую работу, возможно, перейдите на JQuery. Если вам нужен красивый, интуитивно понятный JavaScript, придерживайтесь прототипа - он никуда не денется!