Каковы текущие различия между jQuery и Прототипом? [закрытый]

8
задан Rob W 27 December 2011 в 17:06
поделиться

4 ответа

Предыдущее обсуждение

Много, если не весь ваш вопрос уже обсуждался. См. поиск или:

Переход с Prototype на JQuery

Я нахожусь в процессе перехода с Protoype на JQuery, в основном по причинам производительности (я видел слишком много тестов с Prototype, которые всегда приходили последним в JQuery, MooTools и Dojo.) Я бы сказал, что стоимость переключения не ужасна, потому что большинство основных концепций (Selection, Effects, Ajax) очень похожий. Однако каждая строка кода прототипа должна быть тщательно переписана - особенно потому, что многие вспомогательные функции и конструкции ( $ $$ ) выглядят обманчиво похожими.

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

В любом случае будьте готовы к фазе интенсивного обучения. Конструкции JQuery маленькие и умные, но их ужасно читать ИМХО (и выглядят ужасно по сравнению с блоком собственного Javascript, но это другое обсуждение). Определенно потребуется время, чтобы познакомиться с синтаксисом и принципами, если вы работаете с другой структурой или собственным Javascript.

13
ответ дан 5 December 2019 в 06:09
поделиться

Ответ Pekka - это здорово, но одна вещь, которая должна быть добавлена, заключается в том, что рельсы сильно движутся в направлении будущего рамок JavaScript Agnostic. Хотя, когда рельсы впервые вышло, его интеграция AJAX была инновационной, с тех пор, как правило, ландшафт JavaScript резко изменился, и интеграция Rails больше не соответствует передовым практикам. Таким образом, интеграция прототипов не следует рассматривать серьезным фактором сегодня на рельсах 2.3, и это будет еще меньше фактора в Rails 3.0, которые, вероятно, будут освобождены в течение следующих нескольких месяцев. Недавно я прочитал интересную статью , описывающую некоторые из самых значительных изменений в интеграцию JavaScript Rails в течение многих лет.

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

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

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

9
ответ дан 5 December 2019 в 06:09
поделиться

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

Самым большим препятствием в начале является тот факт, что прототип крючков крючком прямо сейчас. Как только вы включите его на страницу, все элементы DOM, которые вы смотрите, будут прикреплены к ним функциональность прототипа. С jQuery она оставляет всеми элементами, пока не доступа к одному с селектором JQuery $ («CSS-Class»). Объект, с которого вы вернетесь с этого вызова, прикреплен методы jQuery.

Если вы хотите ослабить себя в jQuery, вы могли бы оставить все, используя прототип и включите jQuery и вызов jQuery.noConflict (); http://docs.jquery.com/core/jquery.noConflict . Это даст метод «$» обратно на прототип, и позволяет использовать jQuery, позвонив jQuery («CSS-Class») вместо этого.

Если вы хотите полностью перейти в jQuery, я бы порекомендовал использовать плагин Jrails ( http://github.com/aaronchi/jrails ). Он заменит все рельсы Ajax Humeters и у них используют jQuery вместо прототипа. Я сделал это в ряде проектов и никогда не имел никаких проблем.

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

3
ответ дан 5 December 2019 в 06:09
поделиться

jQuery более эффективно для небольших умных клиентских эффектов. Прототисты более эффективны для глубокого развития JavaScript.

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

2
ответ дан 5 December 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: