В CDNJS размещен пакет jquery.slim. Он имеет меньший размер. Каковы основные отличия от оригинала? Быстрый взгляд на код не принес ответа, а на jquery.com я не нашел ссылки на slim
package.
Итак, каковы различия между jquery.js и jquery.slim.js?
В CDNJS размещен пакет jquery.slim. Он имеет меньший размер. Каковы основные отличия от оригинала? Быстрый взгляд на код не принес ответа, а на jquery.com я не нашел ссылки на slim
package.
Итак, каковы различия между jquery.js и jquery.slim.js?
Посмотрев на код, я обнаружил следующие различия между jquery.js и jquery.slim.js:
В jquery.slim.js удаляется следующая функция кода:
Краткий ответ, полученный из анонса окончательной версии jQuery 3.0:
Наряду с обычной версией jQuery, которая включает модули ajax и effects, выпущена "тонкая" версия, которая исключает эти модули. В целом, он исключает ajax, эффекты и в настоящее время устаревший код.
Размер файла (gzipped) примерно на 6k меньше, 23.6k против 30k.
В настоящее время наиболее авторитетный ответ представлен в этом issue, который гласит: "Это пользовательская сборка jQuery, которая исключает эффекты, ajax, и устаревший код". Подробности будут объявлены с помощью jQuery 3.0.
Я подозреваю, что обоснование исключения этих компонентов библиотеки jQuery является признаком все более распространенного сценария использования jQuery в сочетании с другой структурой JS, например Angular или React. В этих случаях использование jQuery в первую очередь предназначено для обхода и манипулирования DOM, поэтому исключая те компоненты, которые либо устарели, либо обеспечиваются каркасом, что примерно на 20% уменьшает размер файла.
Я мог видеть, что $.ajax
удаляется из jQuery slim 3.2.1
Ниже приведен комментарий из тонкой версии с удаленными функциями
/*! 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 */