Die beste Strategie Dojo ist nicht mehrere Bibliotheken verwenden. Es ist verlockend, mehr Bibliotheken für ein Problem zu verwenden, aber es ist ineffizient, fehleranfällig und macht es schwieriger, den Code von anderen zu verwalten.
In den meisten Fällen sollten Sie in der Lage sein, die Verwendung mehrerer Bibliotheken zu vermeiden, indem Sie Ihre Problemdomäne verstehen und welche Bibliothek Ihnen dabei hilft, diese zu lösen. Es gibt auch eine Vielzahl von Plugins und Erweiterungen für alle diese Bibliotheken.
Zum Beispiel unterstützt JQuery domainübergreifende JSONP-Aufrufe direkt aus der Box und hat eine schöne Widget-Bibliothek in JQueryUI, Prototyp nicht.
$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { });
Prototyp hat wirklich gute OO-Unterstützung und es ist einfach, den DOM, zu durchqueren, aber einige der Cross-Domain-Funktionalität Widgets und Mashups erforderlich fehlt zu erstellen.
var Foo = Class.create({
initialize: function(name) {
this.name = name;
}
});
var Bar = Class.create(Foo, {
initialize: function($super, name) {
$super(name);
}
});
Mootools hat große Auswirkungen, gute OO-Unterstützung, wirklich solide Widgets und Cross-Domain-Anfrage, aber (und dies könnte nur mein Eindruck sein), die Entwicklung der Gemeinschaft nicht als gemeinschaftliche und soziale mit der globalen Gemeinschaft (außerhalb der Mootools) wie die anderen Gemeinschaften (Prototyp war früher so). Dies könnte darauf zurückzuführen sein, dass ihre Hauptentwickler außerhalb der USA leben und daher nicht an so vielen Konferenzen teilnehmen und an der größeren Gemeinschaft teilnehmen können. Ich würde mich zwar nicht davon abhalten lassen, aber es ist etwas, das man im Kopf behalten sollte.
AFAIK Prototyp hat keine solche Funktion. jQuery benennt alles innerhalb des "jQuery" -Objekts und Prototype hat seine Funktionen auf Dutzende von benutzerdefinierten und integrierten Klassen verteilt, so dass es sehr schwierig wäre, dies zu tun. –
Wie bei Yahoo, wenn ich mich richtig erinnere verbirgt es alles in einem Namespace namens "Yahoo" oder so etwas, so dass es nicht wirklich mit irgendwas in Konflikt stehen standardmäßig. –