Ich verwende jQuery auf mehreren meiner Websites, und obwohl ich ein CDN verwende, um es bereitzustellen, ist es für Besucher einfach nicht sinnvoll, jQuery jedes Mal herunterzuladen. jQuery muss das weltweit am häufigsten verwendete JavaScript-Framework sein. Wäre es nicht sinnvoller, wenn Browser es standardmäßig installieren würden?
Auf diese Weise könnte ein Download von jQuery millionenfach am Tag verhindert werden. Entweder von den eigenen Websites oder von den CDNs.
Alles, was wirklich benötigt würde, ist eine Art if-Anweisung wie:
<!--[if jQuery gt 11]>
Gibt es etwas, das mir dabei hilft, Benutzer daran zu hindern, zum CDN zu gelangen, wenn sie jQuery bereits von einer anderen Site aus in ihrem Cache haben?
Antworten:
Wenn Sie jQuery über ein beliebtes CDN wie die von Google gehosteten Bibliotheken oder cdnjs bereitstellen , wird es nicht erneut heruntergeladen, wenn sich Ihr Besucher auf einer Site befunden hat, die auf jQuery aus derselben Quelle verwiesen hat (solange die zwischengespeicherte Version nicht abgelaufen ist).
Wie Sie bereits sagten, ist jQuery eine beliebte Bibliothek, aber das Bündeln mit dem Browser ist aus verschiedenen Gründen unwahrscheinlich:
quelle
JQuery ist nicht nur die einzige beliebte JS-Bibliothek, ein Browser muss möglicherweise auch mehrere Versionen enthalten. Das Google CDN listet derzeit Folgendes auf: 42 Versionen von jQuery; 44 Versionen von jQuery UI; 6 Versionen von jQuery Mobile.
Es ist besser, Web-Entwicklern zu erlauben, basierend auf den Anforderungen ihrer Website zu definieren, welche Version einer Bibliothek heruntergeladen werden soll. Wenn Sie eine aktuelle Produktionsversion von jQuery auf Ihrer Website verwenden und diese von einem bekannteren CDN laden, besteht eine gute Chance, dass Ihre Besucher sie ohnehin bereits zwischengespeichert haben.
quelle
Der Browser ist der Motor. Es ist nicht die Aufgabe des Motorenentwicklers, herauszufinden, welche Art von Kraftstoff und zusätzlichen Teilen Sie in Ihr Auto einbauen und für Sie einbeziehen. Wenn sie dies tun würden, wäre der Browser eine riesige Bloatware, da die nächste Frage "Warum nur jQuery?" Lautet und wir am Ende Abhängigkeits-Repositorys pflegen würden.
Werden wir auch alle Versionen aufnehmen? Was ist, wenn jemand eine benutzerdefinierte Version verwenden möchte? Was ist, wenn jemand diese Bibliothek nicht nutzen möchte? Wie oft werden sie die neuesten Releases zusammenführen und rollen? Werden wir unterschiedliche Browser mit unterschiedlichen versionierten jQuerys haben? Sie können nicht einmal standardisierte HTML-, CSS- und JavaScript-Funktionen gleichermaßen implementieren. Was ist, wenn einer der Browser-Betreuer keine Bibliothek oder eine bestimmte Version enthält?
Browser bieten Bausteine und eine Umgebung, in der Sie eine noch nicht fertige Lösung erstellen können.
Durch das Einfügen von jQuery in den Browser wird Ihre Website nicht blitzschnell geladen, da dies heutzutage nicht der größte Engpass ist. Wir können uns jedoch darauf einigen, dass jQuery eine unnötig große Bibliothek ist, deren Zweck es jedoch nie war, eine schnelle Bibliothek zu sein (wenn man bedenkt) Bandbreite). Es gibt viele andere Bibliotheken, die speziell für schnelles Laden und geringes Gewicht wie Zepto entwickelt wurden .
Wenn Sie sich wirklich Gedanken über die Größe und die Bandbreitennutzung von jQuery machen, verwenden Sie es nicht. Haben Sie jemals von Vanilla JS gehört ? Es ist eine noch populärere Bibliothek, die buchstäblich von fast jedem benutzt wird, auch von jQuery selbst! Und es hat Ihren Traum bereits erfüllt, denn es ist in jedem Browser enthalten!
quelle
Ein Grund für die Verwendung einer Bibliothek wie jQuery ist die Kompatibilität.
Browser sind standardkonformer geworden, aber wenn Sie die jquery-Bibliothek verwenden, müssen Sie sich keine Gedanken mehr über Unterschiede zwischen Browserfamilien und -versionen machen
Indem Sie die JQuery selbst bereitstellen, können Sie sicher sein, dass Sie eine konsistente API haben.
Wenn wir die jquery in den Browser eingebaut haben, müssen Sie überprüfen, welche Version der Benutzer hat, und wir befinden uns wieder im Browserniffing und "Diese Site wird am besten in ...".
Es macht also keinen Sinn, die JQuery in den Browser zu integrieren.
Das Zwischenspeichern funktioniert auch, sodass die jquery-Version nur einmal heruntergeladen werden muss, auch wenn der Benutzer sie noch nicht besitzt.
quelle
Ich denke tatsächlich, dass die Antwortenden hier nicht verstehen, dass die Antwort auf die Frage lauten sollte, dass Browser wahrscheinlich die am häufigsten verwendeten Bibliotheken, Polyfills usw. auf der Clientseite einschließen.
Wie die Person, die die Frage stellt, feststellt, können bedingte Kommentare verwendet werden, um sicherzustellen, dass Browsern, die keine Abfrage enthalten, eine geeignete Version bereitgestellt wird.
Jquery enthält auch eine eigene Unterstützung für die Abwärtskompatibilität durch Migration, sodass bedingte Kommentare die Retro-Unterstützung für Personen mit einer Paketversion einer älteren Jquery-Bibliothek ermöglichen, ohne eine vollständig neue Bibliothek herunterzuladen.
Das Argument, diese in Browser einzubeziehen, würde sich nicht nur auf die Benutzererfahrung und die Kosten beziehen, sondern auch auf diesen Planeten, auf dem wir leben. Die Verwendung von Daten ist ein enormer Beitrag zur globalen Umweltverschmutzung, und die Minimierung des unnötigen Datentransfers könnte sich dramatisch auf unseren CO2-Fußabdruck auswirken.
Im Wesentlichen, um ein paar Megabyte zusätzlichen Code hinzuzufügen, der in einem gepackten Browser aufgebläht ist - dieselben Daten werden unnötigerweise milliardenfach am Tag übertragen.
Das verschlechtert die Benutzerfreundlichkeit für alle im Internet. Und kostet Großunternehmen riesige Geldsummen.
Als Entwickler würden Sie einfach die erforderlichen Fallbacks erstellen, wie wir es derzeit für den IE usw. tun. Was ist also das Problem - sollte es wahrscheinlich enthalten sein?
quelle