Frage

Welche Erfahrungen können Sie sich über die Verwendung mehrerer AJAX-Bibliotheken teilen?

Es gibt nützliche Features in Prototype, einige in jQuery, die Yahoo-Bibliothek etc. Ist es möglich, alle Bibliotheken zu schließen und verwenden, was Sie von jeder wollen, haben sie in der Regel alle schön zusammen mit Namensräumen spielen, etc. Für die aus Gründen der Geschwindigkeit gibt es eine praktische Grenze für die Größe / Anzahl der Bibliotheken enthalten oder ist dies vernachlässigbar? Gibt es Paare, die besonders gut zusammenarbeiten (z Prototype / Scriptaculous) oder Paare, die es nicht tun?

War es hilfreich?

Lösung

Sie können alle diese Bibliotheken verwenden, aber ich dagegen sehr empfehlen. Das Herunterladen und Ausführen von so viel JavaScript wird höchstwahrscheinlich den Browser ersticken und Ihre Benutzer-Erfahrung verlangsamen. Es wäre viel besser, aus der Sicht des Benutzers und einen Entwickler eine auswählen. Weniger Kontext / Architektur Schalten und weniger Code zu erhalten.

Wie andere Antworten gesagt haben, die meisten nicht in Konflikt stehen.

Siehe Yahoo! 'S Außergewöhnliche Leistung Website für weitere Informationen.

Andere Tipps

könnten Sie Google AJAX Libraries API . Es bietet ein gemeinsames Vertriebsnetz und eine Lade Architektur für jQuery, Prototyp, script.aculo.us, MooTools und Dojo

YUI ist ziemlich stark Namensraum sollte so nicht mit anderen Bibliotheken kollidieren.

Wie bereits erwähnt Sie jQuery in keinem Konflikt-Modus ausgeführt werden kann.

Prototype hat hat einige Probleme schön spielen mit anderen Bibliotheken zum Teil, weil es (oder früher) modifiziert Kern Objekte wie Array. Protosafe versucht, diese Probleme zu lösen.

Script.aculo.us ist einfach eine Widget-Bibliothek, die auf der Oberseite der Prototyp sitzt so sollte diese beiden offensichtlich gut zusammen spielen.

All dies bedeutet, dass Sie könnte verwenden YUI, jQuery, Prototype & Script.aculo.us in der Anwendung, aber Sie können feststellen, dass eine einzelne Bibliothek macht es viel leichter, Dinge zu halten .

Ich bin ein jQuery Gläubiger als auch, so verzeihen Sie meinen Mangel an Wissen über die anderen, aber ...

Was macht jQuery so groß ist der No-Konflikt-Modus, so zum Beispiel, würden Sie tun:

$('#foobar').whatever();

Ohne-Konflikt-Modus, würden Sie dies tun:

var jq = jQuery.noConflict();
jq('#foobar').whatever();

Eine Sache weniger zu befürchten. Ich könnte mir vorstellen, Prototyp bietet eine ähnliche Funktion bietet, und Yahoo als auch.

Aber wie auch immer, ich würde nicht wollen, jQuery zu viel befürworten und die Leute verrückt machen, aber was auch immer Bibliothek, die Sie wählen, ich glaube, sie alle so ziemlich alles tun kann, was man braucht. Vor allem denkt über die Vorteile von nicht mit drei verschiedenen Bibliotheken lernen.

Alle drei sollten fähig sein. Wählen Sie die Ihnen am besten gefällt und erweitern sie. :)

Ich bin mit jQuery und der JavaScript-Datei nur Version der Ajax-Tool-Kit Seite Microsof an Seite in Projekt jetzt.

Ich denke, ich werde mit jQuery gehen und das Microsoft ein Entfernen enden. Ich bin sehr neu auf jQuery, aber je mehr ich lerne darüber nachdenke, desto mehr verliebten ich.

Die beste Strategie ist auf nicht verwenden, um mehrere Bibliotheken . Es ist verlockend, mehr Bibliotheken zu wollen, um ein Problem zu werfen, aber es ist ineffizient, fehleranfällig und macht den Code schwerer von anderen zu erhalten.

In den meisten Fällen sollten Sie in der Lage sein, mehrere Bibliotheken zu vermeiden, mit von Ihrem Problembereich zu verstehen und die Bibliothek wird Ihnen helfen, am besten, es zu lösen. Es gibt auch eine Vielzahl von Plug-Ins und Erweiterungen für alle diese Bibliotheken.

Zum Beispiel JQuery unterstützt Cross-Domain JSONP direkt aus der Box Anrufen und hat eine schöne Widget-Bibliothek in jQueryUI, Prototype nicht.

$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { });

Prototype 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 Entwicklungsgemeinschaft ist nicht als gemeinschaftliche und soziale mit der globalen Gemeinschaft (außerhalb von Mootools) wie die anderen Gemeinden (Prototyp verwendete diese Art und Weise zu sein). Dies könnte ein Ergebnis ihrer Hauptentwickler (n) außerhalb der USA leben wird, und ist somit nicht in der Lage, so viele Konferenzen zu besuchen und in der größeren Community. Ich würde nicht zulassen, dass Sie vollständig obwohl abzuschrecken, aber es ist etwas im Auge zu behalten.

Ruby on Rails verwendet sowohl Prototypen und Scriptaculous standardmäßig, da es zwischen den beiden kleinen Überlappung ist. Ich habe auch Yui Schnipsel zusätzlich zu dem, und hatte noch nie ein Problem verwendet. Die Ladezeiten sind ein Problem, aber die Bibliotheken in der Regel zwischengespeichert, so dass es nur auf der ersten Seite geladen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top