Was sind die Unterschiede zwischen normalen und schlanken Paket von Jquery?

Bei CDNJS ist das Paket jquery.slim platziert. Es hat eine kleinere Größe. Was sind die Hauptunterschiede zu einem Original? Ein kurzer Blick auf den Code brachte die Antwort nicht, und auf der jquery.com habe ich keinen Hinweis auf ein slim Paket gefunden.

Also, was sind die Unterschiede zwischen jquery.js und jquery.slim.js?

Beim Betrachten des Codes habe ich die folgenden Unterschiede zwischen jquery.js und jquery.slim.js gefunden:

In der jquery.slim.js wird die folgende function des Codes entfernt:

  1. jQuery.fn.extend
  2. jquery.fn.load
  3. jquery.each // Fügen Sie eine Reihe von functionen für die Behandlung allgemeiner AJAX-Ereignisse hinzu
  4. jQuery.expr.filters.animiert
  5. ajax-Einstellungen wie jQuery.ajaxSettings.xhr, jQuery.ajaxPrefilter, jQuery.ajaxSetup, jQuery.ajaxPrefilter, jQuery.ajaxTransport, jQuery.ajaxSetup
  6. XML-Parsing wie jQuery.parseXML,
  7. Animationseffekte wie jQuery.easing, jQuery.Animation, jQuery.speed

Die kurze Antwort aus der Ankündigung von jQuery 3.0 Final Release :

Zusammen mit der regulären Version von jQuery, die die Module ajax und effects enthält, veröffentlichen wir eine “schlanke” Version, die diese Module ausschließt. Alles in allem schließt es Ajax, Effekte und derzeit veralteten Code aus.

Die Dateigröße (gziped) ist etwa 6k kleiner, 23,6k vs 30k.

Zu diesem Zeitpunkt scheint die autoritativste Antwort in diesem Problem zu sein. Darin heißt es: “Es ist ein benutzerdefinierter Build von jQuery, der Effekte, Ajax und veralteten Code ausschließt.” Details werden mit jQuery 3.0 bekannt gegeben.

Ich vermute, dass der Grund für das Ausschließen dieser Komponenten der jQuery-Bibliothek in der Anerkennung des zunehmend üblichen Szenarios ist, in dem jQuery in Verbindung mit einem anderen JS-Framework wie Angular oder React verwendet wird. In diesen Fällen ist die Verwendung von jQuery hauptsächlich für DOM-Traversal und -Manipulation gedacht, so dass die Komponenten, die entweder veraltet sind oder vom Framework bereitgestellt werden, eine Reduzierung der Dateigröße um 20% mit sich bringen.

Ich konnte sehen, dass $.ajax aus jQuery slim 3.2.1 entfernt wurde

Unten ist der Kommentar von der schlanken Version mit den Features entfernt

 /*! jQuery v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */ 

Der jQuery Blog, jQuery 3.1.1 veröffentlicht! sagt,

Schmales Gebäude

Manchmal benötigen Sie keinen Ajax, oder Sie bevorzugen eine der vielen eigenständigen Bibliotheken, die sich auf Ajax-Anfragen konzentrieren. Und oft ist es einfacher, eine Kombination aus CSS und classnmanipulation für alle Ihre Webanimationen zu verwenden. Neben der regulären Version von jQuery, die die Module ajax und effects enthält, haben wir eine “schlanke” Version veröffentlicht, die diese Module ausschließt. Alles in allem schließt es Ajax, Effekte und derzeit veralteten Code aus. Die Größe von jQuery ist in diesen Tagen sehr selten ein Last-Performance-Problem, aber der schlanke Build ist etwa 6k gziped Bytes kleiner als die normale Version – 23.6k vs 30k.