jQuery -
Doch in den letzten Jahren hat sein Status als führendes Tool für die Webentwicklung an Bedeutung verloren. Schauen wir uns an, warum jQuery populär wurde und warum es aus der Mode kam und in welchen Fällen es immer noch ratsam ist, es zum Erstellen moderner Websites zu verwenden.
Eine kurze Geschichte von jQuery
John Resig (
jQuery ist eine Javascript-Bibliothek nach dem Motto: Javascript sollte Spaß machen, zu programmieren. jQuery übernimmt häufige, sich wiederholende Aufgaben, entfernt alle unnötigen Markups und macht sie kurz, elegant und sauber.
jQuery hat zwei Hauptvorteile. Die erste ist eine praktische API zum Bearbeiten von Webseiten. Insbesondere bietet es leistungsstarke Methoden zur Auswahl von Elementen. Sie können nicht nur nach ID oder Klasse auswählen, sondern mit jQuery können Sie auch komplexe Ausdrücke schreiben, um beispielsweise Elemente basierend auf ihren Beziehungen zu anderen Elementen auszuwählen:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
Im Laufe der Zeit wurde der Auswahlmechanismus zu einer separaten Bibliothek
Der zweite Vorteil der Bibliothek bestand darin, dass sie Unterschiede zwischen Browsern abstrahierte. Damals war es schwierig, Code zu schreiben, der in allen Browsern zuverlässig funktionierte.
Aufgrund der fehlenden Standardisierung mussten Entwickler zahlreiche Unterschiede zwischen Browsern und Randfällen berücksichtigen. Schauen Sie mal rein
// If Mozilla is used
if ( jQuery.browser == "mozilla" || jQuery.browser == "opera" ) {
// Use the handy event callback
jQuery.event.add( document, "DOMContentLoaded", jQuery.ready );
// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
} else if ( jQuery.browser == "msie" ) {
// Only works if you document.write() it
document.write("<scr" + "ipt id=__ie_init defer=true " +
"src=javascript:void(0)></script>");
// Use the defer script hack
var script = document.getElementById("__ie_init");
script.onreadystatechange = function() {
if ( this.readyState == "complete" )
jQuery.ready();
};
// Clear from memory
script = null;
// If Safari is used
} else if ( jQuery.browser == "safari" ) {
// Continually check to see if the document.readyState is valid
jQuery.safariTimer = setInterval(function(){
// loaded and complete are both valid states
if ( document.readyState == "loaded" ||
document.readyState == "complete" ) {
// If either one are found, remove the timer
clearInterval( jQuery.safariTimer );
jQuery.safariTimer = null;
// and execute any waiting functions
jQuery.ready();
}
}, 10);
}
Und dank jQuery könnten Entwickler die Sorgen über all diese Fallstricke auf die Schultern des Teams abwälzen, das die Bibliothek entwickelt.
Später erleichterte jQuery die Implementierung komplexerer Technologien wie Animationen und Ajax. Die Bibliothek ist praktisch zu einer Standardabhängigkeit für Websites geworden. Und heute betreibt es einen großen Teil des Internets. W3Techs glaubt das
Auch die Kontrolle über die jQuery-Entwicklung wurde stärker formalisiert. Im Jahr 2011 das Team
Im Jahr 2015 fusionierte die jQuery Foundation mit der Dojo Foundation.
Sich ändernde Umstände
Allerdings ist in den letzten Jahren jQuery
Browser
Aus mehreren Gründen haben Browserunterschiede und -beschränkungen an Bedeutung verloren. Erstens hat sich die Standardisierung verbessert. Große Browser-Entwickler (Apple, Google, Microsoft und Mozilla) arbeiten bei der Entwicklung zusammen
Auch wenn sich Browser immer noch in vielen wichtigen Punkten voneinander unterscheiden, verfügen Anbieter zumindest über die Möglichkeit, eine gemeinsame Datenbank zu durchsuchen und zu erstellen
// jQuery
$.getJSON('https://api.com/songs.json')
.done(function (songs) {
console.log(songs);
})
// native
fetch('https://api.com/songs.json')
.then(function (response) {
return response.json();
})
.then(function (songs) {
console.log(songs);
});
Methoden
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Sie können jetzt Elementklassen mit manipulieren
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
Der Standort
Die Verwendung nativer Funktionen verbessert die Seitenleistung. Viele
Der zweite Grund ist, dass Browser viel schneller aktualisiert werden als zuvor. Die meisten von ihnen verwenden
Dies bedeutet, dass neue Browserfunktionen und Fehlerbehebungen viel schneller verteilt werden und Entwickler nicht warten müssen, bis sie verfügbar sind
Der dritte Grund ist, dass sich der Internet Explorer einem Zustand völliger Bedeutungslosigkeit nähert. IE ist seit langem der Fluch der Webentwicklung auf der ganzen Welt. Seine Fehler waren weit verbreitet, und da der IE in den 2000er-Jahren dominierte und keine immergrüne Update-Strategie nutzte, sind ältere Versionen immer noch weit verbreitet.
Im Jahr 2016 beschleunigte Microsoft die Stilllegung des IE.
Seitdem unterstützt sogar jQuery IE 8 und niedriger nicht mehr
Neue Frameworks
Seit dem Aufkommen von jQuery wurden viele Frameworks erstellt, darunter auch moderne Leader
Erstens erleichtern sie die Aufteilung der Benutzeroberfläche in Komponenten. Frameworks sind für das Rendern und Aktualisieren von Seiten konzipiert. Und jQuery wird normalerweise nur zum Aktualisieren verwendet, sodass die Aufgabe, dem Server die erste Seite bereitzustellen, überlassen bleibt.
Andererseits ermöglichen Ihnen React-, Angular- und Vue-Komponenten die enge Verknüpfung von HTML, Code und sogar CSS. So wie wir die Codebasis in viele eigenständige Funktionen und Klassen unterteilen, erleichtert die Möglichkeit, die Schnittstelle in wiederverwendbare Komponenten zu unterteilen, die Erstellung und Wartung komplexer Websites.
Der zweite Vorteil besteht darin, dass neuere Frameworks einem deklarativen Paradigma folgen, bei dem der Entwickler beschreibt, wie die Schnittstelle aussehen soll, und es dem Framework überlässt, alle notwendigen Änderungen vorzunehmen, um das Gewünschte zu erreichen. Dieser Ansatz steht im Widerspruch zum imperativen Ansatz, der den jQuery-Code kennzeichnet.
In jQuery schreiben Sie explizit die Schritte auf, um Änderungen vorzunehmen. Und in einem deklarativen Framework sagen Sie: „Diesen Daten zufolge sollte die Schnittstelle so aussehen.“ Dies kann das Schreiben von fehlerfreiem Code erheblich erleichtern.
Entwickler haben neue Ansätze bei der Website-Entwicklung übernommen, weshalb die Popularität von jQuery abgenommen hat.
Wann sollte jQuery verwendet werden?
Also wann sollte jQuery verwenden?
Wenn die Komplexität des Projekts zunimmt, ist es besser, mit einer anderen Bibliothek oder einem anderen Framework zu beginnen, mit dem Sie die Komplexität sinnvoll verwalten können. Teilen Sie beispielsweise die Schnittstelle in Komponenten auf. Die Verwendung von jQuery auf solchen Websites mag auf den ersten Blick gut aussehen, führt jedoch schnell zu Spaghetti-Code, bei dem Sie nicht sicher sind, welches Fragment welchen Teil der Seite beeinflusst.
Ich war schon einmal in einer solchen Situation: Wenn ich versuche, etwas zu ändern, kommt es mir wie eine schwierige Aufgabe vor. Sie können nicht sicher sein, dass Sie nichts beschädigen, da jQuery-Selektoren von der vom Server generierten HTML-Struktur abhängen.
Am anderen Ende der Skala befinden sich einfache Websites, die nur ein wenig Interaktivität oder dynamischen Inhalt erfordern. Ich würde in diesen Fällen auch nicht standardmäßig auf jQuery zurückgreifen, da Sie mit nativen APIs noch viel mehr tun können.
Selbst wenn ich etwas Leistungsstärkeres benötige, werde ich nach einer spezialisierten Bibliothek suchen, z. B.
Ich denke, der beste Grund für die Verwendung von jQuery ist, dass es umfassende Funktionalität für das Frontend einer Website bietet. Anstatt eine Vielzahl nativer APIs oder spezialisierter Bibliotheken zu erlernen, können Sie einfach die jQuery-Dokumentation lesen und sofort produktiv werden.
Der imperative Ansatz lässt sich nicht gut skalieren, ist aber leichter zu erlernen als der deklarative Ansatz anderer Bibliotheken. Für eine Site mit deutlich eingeschränkten Funktionen ist es besser, jQuery zu verwenden und ruhig zu arbeiten: Die Bibliothek erfordert keine komplexe Assemblierung oder Kompilierung.
Darüber hinaus ist jQuery gut, wenn Sie sicher sind, dass Ihre Website mit der Zeit nicht kompliziert wird, und wenn Ihnen die native Funktionalität egal ist, für die Sie sicherlich mehr Code schreiben müssen als für jQuery.
Sie können diese Bibliothek auch verwenden, wenn Sie ältere Versionen des IE unterstützen müssen. Dann wird Ihnen jQuery genauso dienen wie damals, als der IE der beliebteste Browser war.
Prospektion
jQuery wird so schnell nicht verschwinden. Sie
Sofern sich die Funktionalität von jQuery nicht wesentlich ändert, ist es wahrscheinlich, dass die Nutzung der Bibliothek in den nächsten Jahren langsam, aber stetig zurückgehen wird. Neue Websites werden tendenziell von Anfang an mit moderneren Frameworks erstellt und geeignete Anwendungsfälle für jQuery werden immer seltener.
Manche Leute mögen die Geschwindigkeit, mit der Webentwicklungstools veraltet sind, nicht, aber für mich ist es ein Beweis für schnellen Fortschritt. jQuery hat es uns ermöglicht, viele Dinge besser zu machen. Dasselbe gilt auch für ihre Nachfolger.
Source: habr.com