Was sind die Vorteile der Verwendung von Nur-Javascript gegenüber der Verwendung von Nur-JQuery?
Ich habe nur begrenzte Erfahrung mit JavaScript und JQuery-Codierung. Ich habe HTML-Seiten jeweils Teile und Ausschnitte hinzugefügt, aber hauptsächlich serverseitige Inhalte in anderen Sprachen codiert. Mir ist aufgefallen, dass Sie zwar theoretisch die gleichen Dinge mit einem der beiden Ansätze tun können (und Sie können sie natürlich sogar in dasselbe Projekt verwechseln), aber die Tendenz scheint, JQuery immer von Anfang an zu verwenden egal was das projekt verlangt.
Ich frage mich also, ob es pünktlich Vorteile bringt, nicht nur JQuery zu verwenden, sondern einfach nur einfaches altes JavaScript zu verwenden.
Ich weiß, dass dies wie eine Nicht-Frage aussieht, weil darüber gesagt werden kann, dass "es keine definitive Antwort gibt" oder "es kann für immer diskutiert werden", aber ich hoffe tatsächlich auf pünktliche Antworten wie "Sie können dies in" ein Ansatz und Sie können es nicht mit dem anderen tun ".
Gemäß dem Kommentar von scrwtp beziehe ich mich nicht nur auf den DOM-Handhabungsteil. Meine Frage ist eher: JQuery ist eine Bibliothek. Für Javascript. Was ich an dieser Bibliothek im Gegensatz zu anderen Bibliotheken für andere Sprachen merkwürdig finde, ist, dass sie in JQyerys Fall so konzipiert zu sein scheint, dass sie ausschließlich verwendet werden kann und kein direktes Berühren von Javascript erfordert. Dies ist im Gegensatz zu Hibernate und SQL, wo obwohl die Bibliothek (oder besser gesagt das Framework in diesem Fall, aber ich denke, die Analogie gilt immer noch) den Griff auf eine Menge Aspekte nimmt, Sie immer noch SQL verwenden können, wenn Sie es verwenden Zumindest für einige Randfälle. Im Fall von JQuery & Javascript können Sie jedoch alles, was Sie mit Javascript tun, nur mit JQuery tun (oder zumindest scheint mir das so zu sein).
Laut Stargazer712's Kommentar: Ja, ich stimme Ihnen zu, die Frage hier ist, wie Sie es ausdrücken, "nur eine Frage, wie Sie JavaScript verwenden werden". Das ist es, was ich eigentlich wollte, aber ich habe einige schlechte Formulierungen gemacht. Hier ist eine weitere Analogie: Spring Expression Language. Es ist eine Java-Bibliothek. Sie können es nicht ohne Java verwenden, es basiert auf Java, und Sie können immer noch Java verwenden. In der Praxis können Sie diese Bibliothek jedoch zu einem Java-Projekt hinzufügen und dann Ihren gesamten Code mit der Expressionssprache von Spring EL schreiben, wodurch Ihr Code praktisch überhaupt nicht mehr Java ähnelt und sich sogar das Paradigma ändert (zum Beispiel, wenn Sie es nicht mehr haben) starke Durchsetzung bei Verwendung dieser). Obwohl ich verstehe, dass JQuery nur eine JS-Bibliothek ist, scheint es mir, dass es in der Praxis den gleichen Effekt hat wie Spring EL mit Java, dh Sie können seine APIs nur während eines Projekts verwenden und die APIs von JavaScript vermeiden. Und ich habe mich gefragt, ob das eine gute Sache ist, was die Fallstricke usw. sein könnten.
(Und ja, nachdem ich die Antworten aller gelesen habe, verstehe ich Folgendes:
ein. meine frage ist bis zu einem gewissen punkt etwas unsinnig
b. Selbst wenn die Frage vollständig zutreffend wäre, wäre die Antwort so ziemlich "Nein, Sie können nicht einfach immer nur JQuery verwenden."
quelle
Antworten:
Zunächst einmal: Es ist unmöglich, nur jQuery zu verwenden. Alles, was jQuery tut, ist, ein $ -Objekt mit einer Reihe von Methoden zu Ihrem globalen Gültigkeitsbereich hinzuzufügen. Selbst manipulativere Bibliotheken wie Prototype sind keine Alternative zu Javascript, sondern ein Werkzeug, um häufig auftretende Probleme zu lösen.
Die Hauptvorteile beim Hinzufügen von jQuery zu Ihrem Toolbelt sind:
Javascript ist nicht mehr nur eine clientseitige Sprache, und da jQuery so DOM-abhängig ist, ist es ein schrecklicher Kandidat, auf den Server zu wechseln. Ich empfehle dringend, sich etwas Zeit zu nehmen, um zu verstehen, warum Sie jQuery verwenden (diese Frage zu stellen, ist ein guter erster Schritt!) Und zu prüfen, wann dies erforderlich ist. jQuery kann gefährlich sein, einige der Hauptgefahren sind:
Letztendlich ist jQuery eine unglaublich nützliche und hilfreiche Bibliothek, wenn es richtig verwendet wird. Es ist jedoch keine Alternative zu Javascript. Es ist eine Bibliothek, genau wie zepto.js , YUI , Dojo , MooTools und Prototype - eine davon ist möglicherweise eine viel bessere Wahl für Ihr aktuelles Projekt.
Javascript ist eine missverstandene Sprache und wird von den meisten Menschen erst seit kurzem als mehr als eine Skriptsprache angesehen. Ich empfehle wirklich, mehr darüber zu lesen. Hier sind ein paar gute Einstiegspunkte:
Edit 07/2014 - Mir ist aufgefallen, dass dieser Beitrag immer noch Beachtung findet. Deshalb habe ich eine Reihe von Links hinzugefügt. Diese sind in keiner bestimmten Reihenfolge, sollten aber hilfreich sein.
Ich bin mir sicher, dass es noch viel mehr großartige Ressourcen gibt, an die ich nicht denke oder die ich nicht kenne. Andere Antwortende können diese Liste gerne ergänzen.
quelle
$.ajax
angehefteten Eigenschaften auf "Klassenebene", z. B. ( ), die Wrapper-Objektmengen von dom-Elementen ausspuckt, um DOM-Methoden im Allgemeinen viel weniger zu einer PITA zu machen, indem sie prägnanter und methodenreicher gemacht werden Auto-Loop über Gruppen von Dom-Objekten, wann immer dies sinnvoll ist, und gemeinsame Nutzung einer vorhersehbaren API zwischen Browsern (was weniger ein Problem ist, IE <= 8).Es gibt Vorteile, aber es ist fraglich, ob sie die Nachteile wirklich überwiegen.
Das wichtigste ist, dass Sie Bandbreite sparen und schnellere Antworten erhalten. jQuery fügt Ihrer Antwort weitere ~ 30 KB hinzu. In einigen Netzwerken (und in einigen Ländern) kann dies einige Millisekunden länger dauern. Auf der anderen Seite können Sie die Zwischenspeicherung jedoch auch ganz einfach über Ihren Webserver einrichten.
Zweitens benötigen Sie möglicherweise nur einige sehr einfache Funktionen, und das Herunterladen und Einrichten von jQuery kann mehr Zeit in Anspruch nehmen, als nur das zu implementieren, was Sie benötigen.
Und zum Schluss möchten Sie vielleicht Ihr eigenes Framework rollen, was meistens eine schlechte Idee ist, aber manche Leute haben ihre Gründe.
Wenn Sie jedoch jQuery verwerfen, nur weil Sie von der Lernkurve eingeschüchtert sind, sollten Sie es sich noch einmal überlegen. Zumal es so eher sanft ist.
quelle
Soweit ich weiß, gibt es im Vergleich zu einer Bibliothek wie JQuery , MooTools usw. nur zwei Vorteile bei der Verwendung von Vanille-Javascript .
Es ist erwähnenswert, warum Sie eine Javascript-Bibliothek verwenden möchten, für die es viele gibt:
Ich habe in einem Webshop gearbeitet, in dem Vanille-Javascript unerbittlich war, weil jQuery groß und beängstigend war. Diese Entscheidung, die größtenteils von einem einzigen "Javascript-Entwickler" beeinflusst wurde, war die Quelle vieler Browser-Bugs und die langsame Entwicklung und der Versuch, in seine Codebasis zu gelangen, war eine haarsträubende Erfahrung. Das Schreiben eines eigenen Frameworks scheint eine gute Idee zu sein, aber wenn Sie neue Entwickler einstellen möchten, können diese nicht schnell ein- und aushelfen. Dann ist da noch das Problem des Busfaktors zu berücksichtigen.
Wie gesagt, ich habe dort gearbeitet ... anderswo gab es grünere Weiden. : ^)
quelle
Ich vermische die Verwendung von beiden ziemlich viel. Der Hauptgrund dafür ist, dass Sie für einige Anwendungen (z. B. Chrome-Erweiterungen) keine browserübergreifende Unterstützung benötigen. Das bedeutet, dass ich neue Fortschritte wie CSS3 nutzen kann, die Ihren Code durch Übergänge gegenüber der Verwendung von JQuery erheblich vereinfachen können.
Auch mache ich oft etwas Brauches. Auf jeden Fall, wie die anderen sagten, sollten Sie das Rad nicht neu erfinden. Aber wenn Sie nach verrückten Funktionen gefragt werden, fällt es mir oft viel leichter, sie selbst zu schreiben, als ein JQuery-Plugin zu hacken, das nah beieinander liegt, aber nicht perfekt zusammenpasst.
Ich habe auch mit Entwicklern zusammengearbeitet, die nur mit jQuery arbeiten. Und ich muss sagen, dass sie bei der Funktionalität weitaus häufiger Kompromisse eingegangen sind, als wenn sie kein JQuery-Plugin gefunden hätten, das das getan hat, was sie wollten.
Irgendwann in der Webentwicklung werden Sie aufgefordert, etwas zu tun, das nicht in einer Bibliothek vorgefertigt ist. Stellen Sie an diesem Punkt sicher, dass Sie verstehen, wie die Basissprache wirklich funktioniert.
Also TLDC : Verwenden Sie beide, Sie sind im Nachteil, wenn Sie nur Vanille verwenden, und Sie sind im Nachteil, wenn Sie Vanille nicht von innen und außen kennen und darauf bestehen, immer jquery zu verwenden.
quelle
document.querySelectorAll
hinter den Kulissen heimlich missbraucht .Das einzige, was ich mir vorstellen kann, was Sie ohne JQuery nicht machen können, ist die Verwendung von JQuery-Plugins. Selbst dann könnten Sie Ihre eigene JS-Bibliothek schreiben, die genau das bietet, was das Plugin benötigt.
Stellen Sie sich das folgendermaßen vor: JQuery ist eine Open-Source-Javascript-Bibliothek, die in Javascript geschrieben ist. Sie können sich die Quelle ansehen und dabei lernen, wie Sie alles tun, was sie tut.
Sie können JQuery nicht ohne einfaches altes Javascript verwenden. Sie werden wahrscheinlich nicht verwenden
document.getElementById
, aber Sie werden weiterhin Funktionen und Variablen auf die standardmäßige Art und Weise von Javascript definieren. Sie könnten sogar eine Standardschleife schreibenfor
.Der Hauptvorteil der Verwendung von JQuery ist derselbe wie bei jeder anderen Drittanbieter-Bibliothek in einer beliebigen Sprache: Sie müssen nicht so viel Code schreiben, um die für Ihre Anwendung spezifische Logik zu implementieren.
Lassen Sie sich von der Größe nicht abschrecken. Die CDN-Version ist ein ~ 33k-Download, der vom Browser des Benutzers nach dem ersten Seitenaufruf zwischengespeichert wird.
quelle
Wenn Sie sich Sorgen um die Leistung machen, sollten Sie versuchen, Vanille-Js zu verwenden, wann immer dies möglich ist. Frameworks erhöhen nicht nur den Bandbreitenaufwand, sondern auch den Verarbeitungsaufwand. Und jQuery bietet auch Browserkompatibilität für ziemlich alte Browser.
Wenn Sie an mobilen Apps oder Spielen (oder beidem zusammen) arbeiten, müssen Sie zuerst Leistung und Ressourceneffizienz erreichen.
jQuery und Plugins beschleunigen möglicherweise Ihre Entwicklung, aber insbesondere, wenn Sie sich auf jquery-Plugins von Drittanbietern verlassen, sollten Sie wissen, was diese tun. Viele von ihnen sind schlechte Beispiele für Codequalität und -effizienz.
jQuery kann 2- bis 10-mal langsamer sein als natives JavaScript. Und es kann Entwickler leicht ermutigen, ihre Benutzeroberfläche nicht richtig zu gestalten und sich zu sehr auf jQuery-Selektoren zu verlassen, die viel langsamer als native sind.
quelle