На CDNJS размещен пакет jquery.slim. Он имеет меньший размер. Каковы основные отличия от оригинала? Быстрый просмотр кода не принес ответа, а на jquery.com я не нашел никаких ссылок на slim
пакет.
Итак, чем отличаются jquery.js от jquery.slim.js?
На CDNJS размещен пакет jquery.slim. Он имеет меньший размер. Каковы основные отличия от оригинала? Быстрый просмотр кода не принес ответа, а на jquery.com я не нашел никаких ссылок на slim
пакет.
Итак, чем отличаются jquery.js от jquery.slim.js?
Ответы:
Глядя на код, я обнаружил следующие различия между jquery.js и jquery.slim.js:
В jquery.slim.js удалены следующие функции:
jQuery.fn.extend
его используют для добавления методов в упакованные наборы. Вы имели в виду что-то еще в # 1?
Краткий ответ взят из анонса финальной версии jQuery 3.0 :
Наряду с обычной версией jQuery, которая включает в себя модули AJAX и эффектов, мы выпускаем «тонкую» версию, которая исключает эти модули. В общем, он исключает ajax, эффекты и устаревший код.
Размер файла (gzipped) примерно на 6 КБ меньше, 23,6 КБ против 30 КБ.
В настоящее время наиболее авторитетным ответом, по-видимому, является этот вопрос , в котором говорится, что «это пользовательская сборка jQuery, исключающая эффекты, ajax и устаревший код». Подробности будут объявлены с jQuery 3.0.
Я подозреваю, что обоснование исключения этих компонентов из библиотеки jQuery заключается в признании все более распространенного сценария использования jQuery в сочетании с другой средой JS, такой как Angular или React. В этих случаях использование jQuery в первую очередь предназначено для обхода и манипулирования DOM, поэтому исключение тех компонентов, которые либо устарели, либо обеспечиваются платформой, позволяет уменьшить размер файла примерно на 20%.
fetch()
который является современной заменой XMLHttpRequest
(AJAX).
Выпущен блог jQuery, jQuery 3.1.1! говорит,
Стройное телосложение
Иногда вам не нужен ajax, или вы предпочитаете использовать одну из множества автономных библиотек, которые фокусируются на запросах ajax. И часто проще использовать комбинацию CSS и манипулирования классами для всех ваших веб-анимаций. Наряду с обычной версией jQuery, которая включает в себя модули Ajax и Effects, мы выпустили «тонкую» версию, которая исключает эти модули. В общем, он исключает ajax, эффекты и устаревший код. В настоящее время размер jQuery очень редко влияет на производительность при загрузке, но компактная сборка примерно на 6 тыс. Байтов сжата по сравнению с обычной версией - 23,6 тыс. Против 30 тыс. Байт.
Я мог видеть $.ajax
, удален из JQuery Slim 3.2.1
Из документов JQuery
Вы также можете использовать тонкую сборку, которая исключает модули Ajax и эффектов.
Ниже приведен комментарий от тонкой версии с удаленными функциями
/*! 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 */
Как отмечалось, Ajax и модули эффектов были исключены из jQuery slim, разница в размере 3.3.1 для разархивированной мини-версии составляет 85 КБ против 69 КБ (экономия 16 КБ для Slim) или 30 × 24 для ZIP-архивов, важно отметить, что Bootstrap 4 использует тонкий JQuery, так что если кто-то хочет полную версию, они должны называть это вместо