2008-09-13 13 views
6

Welche Erfahrung können Sie mit der Verwendung mehrerer AJAX-Bibliotheken teilen?Was sind die besten Strategien für die Verwendung mehrerer AJAX-Bibliotheken?

Es gibt nützliche Funktionen in Prototype, einige in jQuery, die Yahoo-Bibliothek, usw. Ist es möglich, alle Bibliotheken einzuschließen und zu verwenden, was Sie von jedem wollen, spielen sie alle gut zusammen mit Namensräumen, usw. Für der Geschwindigkeit wegen gibt es eine praktische Grenze für die Größe/Anzahl der Bibliotheken aufzunehmen oder ist das vernachlässigbar? Gibt es Paare, die besonders gut zusammenarbeiten (z. B. Prototype/Scriptaculous) oder Paare, die dies nicht tun?

Antwort

9

Sie könnten alle diese Bibliotheken verwenden, aber ich empfehle sehr dagegen.Das Herunterladen und Ausführen von so viel JavaScript wird den Browser wahrscheinlich ersticken und die Benutzererfahrung verlangsamen. Es wäre viel besser aus der Sicht eines Anwenders und eines Entwicklers, um einen auszuwählen. Weniger Kontext/Architekturwechsel und weniger zu wartender Code.

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

Siehe Yahoo! S Exceptional Performance Website für weitere Informationen.

1

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

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

2

Ich bin auch jQuery Gläubige, so verzeihe meinen Mangel an Wissen über die anderen, aber ...

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

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

ohne-Konflikt-Modus, dann 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, und Yahoo.

Aber wie auch immer, ich möchte nicht jQuery zu sehr befürworten und Leute verrückt machen, aber welche Bibliothek Sie auch wählen, ich denke, dass sie alle so ziemlich alles tun können, was Sie brauchen würden. Vor allem denkt über die Vorteile von nicht mit drei verschiedenen Bibliotheken zu lernen.

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

+0

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. –

+0

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. –

0

Ruby on Rails verwendet sowohl Prototypen und Scriptaculous standardmäßig, da es wenig Überschneidungen zwischen den beiden. Ich habe auch yui Schnipsel dazu benutzt und hatte noch nie ein Problem. Ladezeiten sind ein Problem, aber die Bibliotheken werden normalerweise zwischengespeichert, also nur auf der ersten Seite geladen.

+1

Scriptaculous ist ein ADDON zum Prototyp. Deshalb arbeiten sie gut zusammen. – Till

3

YUI ist ziemlich stark Namespace und sollte daher nicht mit anderen Bibliotheken kollidieren.

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

Prototyp hat einige Probleme, die nett mit anderen Bibliotheken spielen, zum Teil, weil es Kernobjekte wie Array modifiziert (oder es früher). Protosafe versucht, diese Probleme anzugehen.

Script.aculo.us ist einfach eine Widget-Bibliothek, die oben auf Prototype sitzt, also sollten diese zwei offensichtlich gut zusammen spielen.

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

4

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

1

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.

Verwandte Themen