Лучшая стратегия заключается в не использовать несколько библиотек. Заманчиво хотеть бросить больше библиотек в проблему, но она неэффективна, подвержена ошибкам и делает ваш код сложнее поддерживать другими.
В большинстве случаев вы должны избегать использования нескольких библиотек, понимая свой проблемный домен, и какая библиотека поможет вам лучше всего решить эту проблему. Существует также множество плагинов и расширений для всех этих библиотек.
Например, JQuery поддерживает междоменные вызовы JSONP прямо из коробки и имеет приятную библиотеку виджетов в JQueryUI, Prototype этого не делает.
$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { });
Прототип имеет очень хорошую поддержку ОО и легко пересекать DOM, но не хватает некоторых функций междоменном, необходимых для создания виджетов и коллажи.
var Foo = Class.create({
initialize: function(name) {
this.name = name;
}
});
var Bar = Class.create(Foo, {
initialize: function($super, name) {
$super(name);
}
});
Mootools имеет большие эффекты, хорошую поддержка OO, действительно твердые виджеты и запрос Междоменного, но (и это может быть просто мое впечатление), сообщество разработчиков не так сотрудничеств и социальное с мировым сообществом (вне mootools), так как другие сообщества (таким образом, был прототип). Это может быть результатом их основного разработчика (ов), живущих за пределами США, и, таким образом, не может посещать столько конференций и участвовать в более широком сообществе. Я бы не позволил этому полностью сдерживать вас, но это то, о чем нужно помнить.
Прототип AFAIK не имеет такой функции. jQuery namespaces все внутри объекта jQuery, а Prototype имеет свои функции, разбросанные по десяткам пользовательских и встроенных классов, поэтому было бы очень сложно это сделать. – 2009-03-23 12:50:35
Что касается Yahoo, если я правильно помню, он скрывает все в пространстве имен, называемом «yahoo» или что-то в этом роде, поэтому он по-настоящему не конфликтует ни с чем. – 2009-03-23 12:51:18