Haben Sie jemals versucht, eine Website zu debuggen, bei der ein Anfänger im Webdesign die Seite mit Skripten überladen hat? Es gibt ein paar Kopien von jQuery in verschiedenen Versionen, vielleicht ein wenig Prototype oder MooTools dazwischen. Wir können ein wenig lachen, aber viele von uns haben diese Phase durchgemacht, in der wir die Dinge einfach nicht gut genug verstanden haben, um zu wissen, dass es damit ein Problem gab. Und gibt es das? Abgesehen von Bandbreitenbedenken haben die meisten Bibliotheken Schritte, die Sie unternehmen können, um sicherzustellen, dass sie bei Bedarf gut mit anderen Bibliotheken zusammenarbeiten. Was ist also die Sache? Benutzen Sie jemals mehrere Bibliotheken? Umfrage ist in der Seitenleiste.
Neue Umfrage: Mehrere JavaScript Bibliotheken
DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!
Ich habe nie mehr als eine Bibliothek verwendet, aber ich erinnere mich an eine Zeit, als ich gerade anfing und versuchte herauszufinden, ob es möglich sei, MooTools und jQuery gleichzeitig zu verwenden. Ich glaube nicht, dass es jemals notwendig ist, mehr als eine gleichzeitig zu verwenden, da sie im Allgemeinen alle dasselbe erreichen können. Die einzige Zeit, in der es notwendig sein kann, eine solche Konfiguration mit mehreren Bibliotheken zu verstehen und zu implementieren, ist im Falle einer schnellen Behebung auf der Website eines Amateurs oder Kunden.
Das ist genau das, was ich denke.
Dem stimme ich zu.
Was ist mit einer Option wie "Ja, aber es war nicht meine Schuld/ich habe ein Projekt mit mehreren Bibliotheken geerbt und musste mich damit auseinandersetzen"? Das wäre diejenige, die ich auswählen würde. Es gefiel mir nicht, aber ich fühlte mich nicht schuldig, weil ich keine Wahl hatte. Diese Situation passt wirklich in keine der Optionen.
Zur Klarstellung: Ich habe Seiten geerbt, auf denen sowohl ältere als auch aktuelle Versionen von jQuery enthalten waren, die ich nicht ändern durfte, und ich habe Projekte mit wirklich alten Versionen von MooTools geerbt, die nicht aktualisiert werden konnten, so dass jQuery hinzugefügt wurde, um zusätzliche Funktionalität bereitzustellen. Keine dieser Situationen war meine Schuld.
Es ist nichts, was ich tun würde, aber als Frontend-Entwickler bekommen wir manchmal Situationen übergeben, die außerhalb unserer Kontrolle liegen, also müssen wir uns anpassen und innerhalb der gegebenen Grenzen arbeiten.
Ich bin mit Scott einer Meinung, ich musste es tun, aber nur als Nebenprodukt von Websites, die ich geerbt habe.
Ich glaube nicht, dass es bei der Umfrage um geerbte Projekte geht. In der obigen Beschreibung beschreibt er, wie Ihre Reaktion aussehen könnte, wenn Sie ein Projekt mit mehreren Bibliotheken erben, und fragt dann: "Benutzen Sie jemals mehrere Bibliotheken?". Ich denke, die Frage sollte präzisiert werden zu "Benutzen Sie jemals mehrere JS-Bibliotheken auf derselben Seite in Ihrem eigenen Code?".
Ich habe einmal an einer Website gearbeitet, die Mootools verwendete, und später entwickelte das interne IT-Team des Kunden Webtechnologien mit jQuery, die sie auf der Website implementieren wollten. Also lachen Sie nicht. Es kann Ihnen passieren! :O
Ich habe es getan, und ich habe es damals nicht einmal bemerkt. Ich wusste nicht einmal, was eine Bibliothek *ist* – ich dachte nur, es seien drei verschiedene Skripte. Es hat mir aber geholfen, etwas über die Lösung von Skriptkonflikten zu lernen!
Heutzutage, da ich mit jQuery fast alles machen kann, verwende ich meistens jQuery. Aber wenn es etwas Cooles gibt, das eine andere Bibliothek verwendet, sehe ich kein Problem darin, sie zu verwenden.
Ich habe gerade ein Projekt abgeschlossen, das zwei verschiedene Versionen von jQuery benötigte. Natürlich gab es ein paar Module, die wir verwendeten und die erforderlich waren, aber auch nur mit älteren Versionen von jQuery funktionierten, und es gab einige neu von uns entwickelte Module, die auf der neuesten Version basierten. Aufgrund von Zeitbeschränkungen konnten wir die älteren Module nicht überarbeiten, sodass gleichzeitige Versionen erforderlich waren.
Ich hatte einmal ein Vorstellungsgespräch bei einer Firma, die damit warb, MooTools zu verwenden. Während des Gesprächs erfuhr ich auch, dass sie Prototype *und* wirklich daran interessiert waren, dass ich auch jQuery verwende. Das kam von ihrem "leitenden" Entwickler, der mich interviewte. Ich sagte ihnen, das Letzte, was sie tun sollten, sei, eine weitere JS-Bibliothek einzuschleusen. Sie boten mir die Stelle an, aber ich lehnte ab.
Ich mag jQuery wirklich, aber ich habe das Gefühl, ich wachse irgendwie darüber hinaus, da es im Grunde eine schöne API für DOM, Ajax und das Abfangen von Ereignissen ist.
Ich finde wirklich, dass das alles ist, was jQuery ist, aber es ist ziemlich gut darin. jQuery UI fühlt sich zu aufgebläht an, um nützlich zu sein (zumindest für mich). Ich habe auch mit Prototype und Scriptaculous gearbeitet, aber ich war kein großer Fan von ihnen.
Genau das ist es (plus Animation und Stiländerung). Aber Sie haben es zu schlecht dargestellt – es bildet nicht nur ein bequemes Wrapper um das DOM, sondern macht das Verhalten browserübergreifend konsistent.
Ich möchte meine Zeit nicht damit verbringen, Code zu schreiben, der für alle Browser gilt, der wurde bereits von jemand anderem geschrieben und ist mir zugänglich – ich möchte ausführlichen und prägnanten Code schreiben und meine Zeit damit verbringen, die Anwendung zu verbessern.
Ich habe nie etwas anderes als jQuery verwendet – und immer nur 1 Version gleichzeitig. Mehrere Versionen und/oder mehrere Bibliotheken führen zu Ineffizienz – zumindest in Bezug auf die Auswahl von Elementen. Wenn ich dasselbe Element mehrmals in jQuery auswähle, erstellt die Bibliothek einen Cache von Elementen, sodass bei der nächsten Auswahl die Arbeit, das Element im DOM zu finden, nicht wiederholt werden muss. Die Verwendung mehrerer Bibliotheken würde zu mehreren Caches und mehreren Suchen führen, wenn nur einer benötigt wird.
Aufgrund der Funktionsweise von jQuery können Sie tatsächlich mehrere Versionen gleichzeitig verwenden. Zum Beispiel nutzen meine "Live"-Elemente 1.4 und $ ist auf jquery14 abgebildet, aber ich kann immer noch $ verwenden, was die ältere Version für alle meine Auswahlen ist.
Vielleicht habe ich es nicht richtig verstanden, aber ja, ich benutze mehrere Bibliotheken. Zum Beispiel jQuery, TypeKit, Lightbox usw. Ich denke, das ist sehr üblich, oder?
Wenn es eine Bibliothek gäbe, die alles handhaben könnte, würde ich diese verwenden....
Wir sind gerade dabei, unsere Produkte von Prototype auf ExtJS umzustellen. In einer perfekten Welt hätten wir die Ressourcen, alles zu portieren, aber in der Realität befinden wir uns in einer Übergangsphase, in der wir immer noch beides verwenden. Dennoch haben wir festgestellt, dass die Einbindung beider Bibliotheken auf einer einzigen Seite viele Probleme verursacht, daher gehen wir vorerst den Ansatz "entweder oder" und migrieren bestehende Software nach und nach, wenn möglich.
Ich würde Nein sagen. Ich habe nie MooTools verwendet, es war immer entweder rohes JS oder jQuery.
Wenn die Antwort "ja" lautet: Sie ignorieren das Potenzial Ihrer Bibliothek. Ganz einfach.
Wie kommen Sie darauf?
Sie können so ziemlich alles tun, was Sie wollen, indem Sie nur JQuery verwenden.
Ich stimme nicht zu. Ich verwende oft jQuery und TypeKit auf derselben Seite. Wenn Sie mir sagen, wie jQuery Schriftarten ersetzen könnte oder TypeKit Animationen durchführen könnte, würde ich zustimmen. Soweit ich weiß, ist das nicht möglich.
Also muss ich 2 Bibliotheken (jQuery und TypeKit) verwenden
Oder verstehe ich die Frage nicht richtig....
Ich betrachte TypeKit nicht als JavaScript-Bibliothek. (Es geht mehr um Mootools, JQuery, Dojo usw.)
Persönlich verwende ich JQuery + Cufon oder sIFR.
Nein, für mich, da ich mich noch nicht mit Moo-Tools beschäftigt habe. Selbst das aktuelle jQuery ist noch weit von meiner Reichweite entfernt.
Ich habe auf einem früheren Arbeitsplatz YUI JS verwendet. Heute verwende ich regelmäßig sowohl jQuery als auch Prototype (auf separaten Apps). Ich lese gerade über Dojo, nur weil ich Gutes darüber gehört habe.
Oh. Ups. Habe die Frage nicht gründlich gelesen. Ich denke, die Verwendung mehrerer JavaScript-Bibliotheken auf einer Seite ist generell eine schreckliche Idee. Jede gute Bibliothek wird ausreichen, einige sind besser in bestimmten Dingen als andere, aber es gibt keinen Grund, mehr als eine einzubinden. Es ist, als würde man versuchen, einen Chevy-Motor in einen Ford-Truck einzubauen. Irgendwie redundant. Und sinnlos. Und unnötig. Und... Sie verstehen schon. :)
Habe einen Prototyp mit mehreren Bibliotheken erstellt, mit der vollen Absicht, bestimmte Plug-ins zum Zeitpunkt der tatsächlichen Entwicklung neu zu erstellen oder zu ersetzen. Ein externes Entwicklungsteam entschied jedoch, dass es sich nicht lohnt, ihn unter Zeitdruck neu zu erstellen, und ist jetzt so weit fortgeschritten, dass es schwierig sein wird, letztendlich zu einer einzigen Nutzung zu gelangen, wie gewünscht.
Meine eigene Schuld, dass ich den Prototyp mit mehreren erstellt habe und jetzt leide oder mich schuldig fühle, wie in der Umfrage erwähnt. Hätte ich mir im Prototyp die Zeit genommen, ihn richtig zu definieren, würde ich mich jetzt nicht mit dem Desaster mehrerer Bibliotheken auseinandersetzen.
Ich kann definitiv verstehen, dass man nicht wirklich zwei "Allzweck"-Bibliotheken benötigen würde, aber heutzutage gibt es mehrere Spezialbibliotheken für Touch-Gesten, Animationen, Vektorgrafiken usw. Einige davon wären erheblich, um sie selbst in einer anderen Bibliothek neu zu erstellen. Ich kann mir definitiv den Fall vorstellen, in dem es angebracht sein könnte, Bibliotheken zu stapeln.
Ich brauche eine weitere Option: "Ja, weil die Leute, die die Website vor mir erstellt haben, mehrere Bibliotheken verwendet haben"...
Ich erinnere mich, als ich mit der Entwicklung begann, Prototype und Scriptalicious für Lightboxes verwendet zu haben. Ich stieß auf einige coole Funktionen, die jQuery hatte, also würde ich jQuery für die zusätzlichen Funktionen verwenden, die ich wollte, und die vorherigen Skripte für meine Lightboxes. Meine Freunde machten mich auf jQuery neugierig, und als ich mich immer mehr damit beschäftigte, entschied ich mich, es als meine bevorzugte JavaScript-Bibliothek zu verwenden. Jetzt verwende ich jQuery für Lightboxes, Diashows und viele andere Dinge. Ich bin daran gewöhnt und es scheint, dass es mehr Entwickler/Unterstützung dafür gibt, aber das ist nur meine Meinung.
Ich tue es, aber selten, und meistens, weil ich es erbe, oder wenn ich feststelle, dass die zweite Bibliothek tatsächlich eine Funktion hat, die in der ersten sehr schwer zu finden ist. Es gefällt mir nicht, aber ich tue es manchmal. Es ist nicht richtig, aber es ist auch kein Verbrechen.
In meinem Fall versuchte ein Designer, drei Plugins mit mehrfachen jQuery-Dateideklarationen anzuhängen. Das Ergebnis war, dass die Bibliotheken einen Kontext verwendeten, der in jQuery definiert war, während interne Skripte sie in einem anderen Kontext aufriefen. Es war wirklich schwierig herauszufinden, warum die Bibliotheken nicht gefunden wurden. Entschuldigen Sie mein Englisch.
Es ist nicht nötig. Man findet kaum eine Funktion, die eine Bibliothek hat und die andere nicht.
Es gibt Fälle, in denen man eine wirklich exzellente Komponente findet, die jQuery verwendet, und eine andere Komponente, die etwas anderes verwendet. Wenn die Komponenten wirklich gut sind, wäre das ein Grund, zwei Bibliotheken im selben Projekt zu verwenden.
Nein, für mich. Obwohl ich zwei JavaScript-Bibliotheken (BBC Glow und jQuery) auf der von mir verwalteten Website verwende, aber nicht auf derselben Seite.
Ich habe das oft getan...
Ich spiele mit Greasemonkey und es ist außer Frage, "rohes JavaScript" zu verwenden, also benutze ich jQuery. Manchmal verwendet die Website bereits ihr eigenes jQuery, manchmal in verschiedenen Versionen. Manchmal ist es Mootools, Prototype, etc. Manchmal ist es alles.
Ich habe es geschafft, in diesen Fällen "mein eigenes jQuery" einzubinden, aber es ist nicht immer einfach.
Wenn ich meine eigenen Sachen schreibe, verwende ich immer "nur ein Framework", das fast immer jQuery ist...
Oh, für diejenigen, die es nicht wissen, Greasemonkey ist eine Firefox-Erweiterung (das Konzept gibt es auch für andere Browser), mit der Sie die von Ihnen besuchten Websites "anpassen" können, indem Sie ihnen etwas JavaScript hinzufügen... Sie MÜSSEN also Code schreiben, der mit vorhandenem JavaScript auf der Seite funktioniert, die Sie ändern möchten.
Und wenn Sie Greasemonkey-Skripte schreiben, die auf jeder Seite laufen sollen, MÜSSEN Sie Code schreiben, der gut mit jeder JavaScript-Bibliothek funktioniert.
Es hat Wochen gedauert, bis ich diesen verdammten "no conflict"-Kram verstanden habe. Irgendwann hat es *plopp* gemacht und funktioniert... ja, das war Mist.
Ich arbeite hauptsächlich mit dem Joomla! CMS, das Mootools 1.1 verwendet, daher ist es sehr üblich, mit Modulen oder Erweiterungen zu arbeiten, die jQuery verwenden. Abgesehen davon sollte eine Bibliothek pro Projekt die Norm für einen professionellen Entwickler sein.
Ich habe ein Projekt, das exzessiv jQuery verwendet und auch OpenLayers für Karten. OpenLayers ist eine Kartenbibliothek, die Teile von jQuery (ich fürchte eine alte Version) und MooTools verwendet. Eine Herausforderung!
Es gibt Situationen, in denen die Leute gezwungen sind, viele zu verwenden, aber meistens ist es kein "guter" Grund. Ein guter Grund wäre, dass Sie zwei Anforderungen haben, die technisch nicht von derselben Bibliothek erfüllt werden können. In Wirklichkeit ist das sehr unwahrscheinlich.
Ich kann verstehen, dass Leute, die kein JavaScript schreiben, "das coole Plugin, das ich in jQuery gefunden habe, und das coole Plugin, das ich in ExtJS gefunden habe" verwenden, aber wenn Sie JavaScript schreiben, würden Sie es in Ihre bevorzugte Bibliothek portieren.
Vorzugsweise eine Bibliothek verwenden, aber wenn sie geerbt ist, kann das ein Problem sein und hängt von Ihren Zeitbeschränkungen ab, ob Sie die Situation mit mehreren Bibliotheken ändern können. Versuchen Sie, die Stresslevel niedrig zu halten. LT
Ich habe auf meinem Blog leider angefangen, zwei Bibliotheken zu verwenden. Meine Website und mein Blog verwenden MooTools, aber ich habe ein WordPress-Plugin installiert, das jQuery verwendet, und ich wollte es nicht neu schreiben. :P
Ich mache es, aber selten, und hauptsächlich, weil ich es erbe, oder wenn ich feststelle, dass die zweite Bibliothek tatsächlich eine Funktion hat, die in der ersten sehr schwer zu finden ist. Es gefällt mir nicht, aber ich tue es manchmal. Es ist nicht richtig, aber es ist auch kein Verbrechen.
Ich habe aus dieser Diskussion viel gelernt, danke euch allen für eure Perspektiven.
Ich habe dies schon oft gesehen und es gibt Situationen, in denen die Leute in eine Lage gebracht werden, die sie dazu zwingt, auf diese Weise zu arbeiten. Normalerweise eine knappe Frist oder mangelnde Erfahrung, ihren eigenen Code von Grund auf neu zu schreiben. Um es klar zu sagen, es ist nicht der richtige Weg, besonders heute, wo wir großartige Bibliotheken mit großartiger Dokumentation für den Einstieg haben – jQuery, Prototype/Script.aculo.us, YUI, ExtJS usw.
Bevor Sie entscheiden, welche Bibliothek Sie verwenden möchten, sollten Sie prüfen, welche Art von Funktionen Ihre Website haben wird und welche Bibliothek gut zu Ihrem Verständnis und Ihrer Designweise passt. Probieren Sie http://en.wikipedia.org/wiki/JavaScript_library
Ich habe letzte Woche ein neues Projekt für einen Kunden begonnen, um seine Website-Usability, Gesamtleistung und SEO zu verbessern. Diese Website hat fast jede Art von JS-Bibliothek – jQuery (3 Versionen), Prototype, ein paar Plugins und benutzerdefinierte Skripte, insgesamt 25 Serveraufrufe – das ist verrückt!
Abgesehen davon, dass man einfach sagt, es sei nicht der richtige Weg, könnten einige Leute sagen: "Scheiß drauf, es funktioniert und ich habe es in weniger als einer Woche gebaut", das stimmt!
Aber was passiert, wenn jemand Neues die Website übernimmt oder ein paar Monate vergehen und Sie ein Upgrade benötigen, werden Sie mit dem Chaos stecken bleiben, das ich heute habe...
Meine Meinung mit über einem Jahrzehnt Berufserfahrung, ich mag
– jQuery – großartig!, gut gebündelt, großartige Dokumentation, UI-Bibliothek und bald Mobile Library (unterstützt von Android-Telefonen)
– Prototype mit Script.aculo.us – eine der ersten Bibliotheken, die ich je verwendet habe, großartig für die Cross-Browser-Unterstützung. Die Kombination dieser beiden verleiht viel Kraft
– YUI – auch sehr gut und gute Online-Beispiele/Dokumentation
– ExtJS – das jetzt Sencha.com ist, glaube ich, Sie müssen es kaufen, aber diese Bibliothek ist großartig, wenn Sie für einen Unternehmenskunden arbeiten. Wirklich High-End-Sachen.
Persönlich habe ich nicht mehr als eine verwendet, jQuery.
jQuery ist das, womit ich zuerst angefangen habe und immer noch ständig lerne, und obwohl ich vorhabe, andere Bibliotheken zu lernen, sehe ich mich nicht dabei, mehr als eine zu verwenden, es sei denn, ich werde dazu von jemand anderem gezwungen.
Ich bin froh, dass Sie das angesprochen haben. Ich hatte diese Website mit jQuery-Fragmenten überall und der Designer entschied sich, prototype.js in den Header einzufügen. Wie viele von Ihnen wissen, führt dies dazu, dass die $ -Deklaration in jQuery undefined wird. Die Seite "Arbeiten mit anderen Bibliotheken" von jQuery enthält viele hilfreiche Tricks, die Sie anwenden können, wenn Sie jeden Ausschnitt von jQuery-Code ändern möchten, wie z. B. "jQuery anstelle von $" verwenden oder "var $j=jQuery;". In diesem Fall gab es Hunderte von Stellen, an denen ein winziges Hover-Event oder ein gestreiftes Tabellenmuster in jQuery durchgeführt wurde, und ich wollte wirklich nicht jede einzelne durchgehen und ändern.
Was ich geliebt hätte, aber letztendlich nicht finden konnte, war eine Möglichkeit, das $ zurückzugewinnen und den jQuery-Code unverändert zu lassen. Stattdessen überzeugte ich den Designer, Prototype zu entfernen und eine jQuery-Alternative für den "Lightbox"-Code zu verwenden, den sie installiert hatte. IMHO können Sie mehrere Bibliotheken nur verwenden, wenn Sie bereit sind, Ihren bestehenden Code entsprechend zu ändern.
Ironischerweise kam ich heute auf diese Seite, um zu sehen, ob mir jemand helfen kann, meine mehrfachen Instanzen von jQuery zu beheben. Es ist ein Albtraum. Hören Sie auf, über mich zu lachen! Ich will geheilt werden!
Das habe ich einmal gemacht, als ich ein Neuling war. Ich hatte gerade Jquery entdeckt und wollte alles Gute, was ich konnte, auf die Website werfen. Infolgedessen funktionierte ein Teil der Funktionalität nicht, also schickte ich eine E-Mail an den Mann selbst, Chris Coyier. Er antwortete mir tatsächlich innerhalb von 24 Stunden und nannte mir mein Problem. Deshalb liebe ich diese Seite. Danke Chris!
Ich habe gerade eine Website mit jQuery für die Skalierung von Hintergrundbildern und einen Featured-Products-Slider codiert. Dann ein Mootools Slimbox.
Ich habe jQuery vor Mootools eingefügt (http://docs.jquery.com/Using_jQuery_with_Other_Libraries) und eine Ersetzung der Dollarzeichen im Mootools-Skript durchgeführt und den Konflikt gelöst (http://www.mooforum.net/solutions12/using-jquery-and-mootools-the-same-page-t1039.html#p3458).
Ich benutze hauptsächlich jQuery, aber ich integriere gelegentlich auch MooTools in ein Projekt mit intensiver JavaScript-Arbeit, gerade wegen seiner ausgezeichneten Bibliothek von Erweiterungen zu den Standard-Prototypen.
Ich kenne eine Website, auf der alle Arten von Bibliotheken zusammen insgesamt 150.000 verwendet werden. plus Inhalt und CSS – weitere 50.000. Ladezeit beträgt ca. 30 Sekunden.
Ja, manchmal benutze ich Bibliotheken, aber öfter versuche ich, kleine/leichte Code-Schnipsel anstelle einer ganzen Bibliothek zu verwenden.
Yup, habe ich am Anfang schon oft gemacht :)