Какие фреймворки JavaScript конфликтуют друг с другом? - PullRequest
5 голосов
/ 03 октября 2008

Бывают случаи, когда я хочу использовать mootools для определенных вещей и Prototype & script.aculo.us для других, но на одном сайте. Я даже думал добавить других, но был обеспокоен конфликтами. У кого-нибудь есть опыт, или я просто пытаюсь сделать вещи слишком сложными для себя?

Ответы [ 7 ]

7 голосов
/ 03 октября 2008

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

Библиотека jQuery и практически все ее плагины ограничены в пространстве имен jQuery. Как правило, «глобальные» объекты также хранятся в пространстве имен jQuery, поэтому вы не должны сталкиваться с jQuery и любой другой библиотекой (например, Prototype, MooTools или YUI).

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

Так что, да, вы можете сделать это, но вы, вероятно, будете создавать головные боли от обслуживания в дальнейшем - тонкие различия между функциями платформы могут быть очевидны для вас сегодня, но могут вернуться через 6 месяцев и совсем другая история! Поэтому я бы рекомендовал сделать это как можно проще и иметь как можно меньше различных фреймворков (желательно 1!) В своей кодовой базе.

3 голосов
/ 03 октября 2008

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

1 голос
/ 03 октября 2008

Недавний вопрос: jQuery & Prototype Conflict

Библиотека Prototype.js была очень оскорбительной и противоречила многим другим библиотекам / коду. Тем не менее, насколько мне известно, они недавно отказались от некоторых действительно сложных сотрудников, таких как замена элемента и т. Д.

0 голосов
/ 29 августа 2010

Инструмент My Framework Scanner полезен для поиска конфликтов JS / CSS между библиотеками:

http://mankz.com/code/GlobalCheck.htm

0 голосов
/ 03 октября 2008

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

0 голосов
/ 03 октября 2008

Мое предложение состоит в том, чтобы очень хорошо изучить одну (или более!) Инфраструктуру, чтобы вы могли копировать нужные вам функции, не добавляя накладные расходы для нескольких инфраструктур.

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

0 голосов
/ 03 октября 2008

Вам лучше придерживаться единого фреймворка для каждого приложения. В противном случае ваш клиент будет тратить слишком много времени / трафика на загрузку javascripts.

При этом Prototype и JQuery могут работать вместе. Информация находится на веб-сайте JQuery.

...