Как стать автором
Обновить

Комментарии 44

НЛО прилетело и опубликовало эту надпись здесь
к сожалению, gzipped не всегда подходит (в ряде случаев при использовании https IE не в состоянии нормально читать гзипованые ресурсы).
НЛО прилетело и опубликовало эту надпись здесь
У меня расклад иной — доля IE составляет около 90%. Так что делать исключение для остальных броузеров смысла особого нет.
Ну хорошо, пусть без gzipped. Просто minified.

Файл «jquery-1.6.4.min.js» весит 91 669 байтов.

(Это не 238,2 килобайта, верно ведь?)

Если же его код закинуть в упаковщик Эдвардса и включить режим «base62 encode», то итоговый файл станет весить 65 753 байта.

Кроме того, глядя на api.jquery.com, я решительно не представляю себе, какие функции можно было бы выкинуть из jQuery и надеяться, что о них не пожалеет хотя бы половина активный пользователей ея.
Опечатка. Вместо «активный пользователей» следует читать «активных пользователей».
2 момента.
а) jQuery не фреймворк, а либа.
б) Зачем производить сравнение в необжатом виде? В необжатом виде jquery и пара тройка плагинов в одном файле (включая валидацию и прочее) заставит вас конкретно и обильно пропотеть.
а) Согласен, ошибочка.
б) Ниже ответили.
Пора. По крайней мере могла бы «развалиться» на отдельные куски, что бы можно было «собрать», только нужное.
Объем 234кб не так может бы и страшно с точки зрения загрузки (если ее грузить с гугла, то у большинства она уже окажется загруженная), да и gzip опять же, но ведь эти 240кб браузеру надо не только загрузить, но и интерпретировать… На слабых машинах тормоза уже могут чувствоваться, а в офисах зачастую далеко не свежие компы стоят.
jQuery уде давно разбита на модули и поддерживает сборку в разных вариациях.
Дайте, пожалуйста, ссылку где можно почитать об этом. На офф.сайте почему-то такой информации не нашел.
Спасибо. Такая модульность очень радует. Но что-то сомнительно, что убрав один модуль (например dimensions.js или data.js, если я сам не использую функции оттуда), все остальные будут работать нормально.
Помимо системы сборки, прилагается и полное покрытие тестами.

Убрав модуль, можно проверить, что именно сломается.
Ну и напомню про zepto.js, аналог jQuery для WebKit.
Браузер будет интерпретировать по мере использования библиотеки а не всё за раз. Что то мне пока ещё ни разу не доводилось на сайте использовать прямо все все все апи jQuery.
Браузер будет интерпретировать по мере использования библиотеки а не всё за раз

Что-то мне кажется, что это голословно. Попробуйте сделать синтаксическую ошибку внутри одной функции, которая не используется после загрузки библиотеки. В консоли браузера вы увидите эту ошибку сразу, а не когда будете использовать эту функцию.
Синтаксический анализ и выделение лексем и исполнение кода разные вещи.
Тут речь об интерпретировании, а не об исполнении. Возможно сделать синтаксический анализ без интерпретирования? Даже если так, на это тоже нужны ресурсы.
У вас в любом случае расходуются ресурсы, всё упирается в количество лексем (ф-ий, глобальных переменных и т.д.) Можно спокойно написать либу, которая просто содержит кучу dummy функций с разными именами и посмотреть сколько место тогда займёт эта либа.
Может реализовать механизм компиляции библиотеки?
Разработчик сам выбирает какие модули и с какими параметрами ему нужны, собирается файл js и всё сжимается.
Особые любители будут играться с флагами, пытаясь ужать еще пару байт )
Используйте CDN.
причем есть же готовые CDN, и не только для jQuery, но и для многих других библиотек.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>


Всякий, кто пользуется чужими CDN и вообще чужими джаваскриптами, не только подвергает cookies пользователей своего сайта риску JS-иньекции (в том числе одноразовой) со стороны крупной компании, но и обеспечивает возможное слежение за ними от сайта к сайту. И всё это ради одной библиотеки, которая не так много занимает на самом деле?
Уж не предлагаете ли вы построить свой CDN, без инъекций и слежки?
И cтоит ли из-за обостренной паранойи отказываться от CDN гугла, особенно если на сайте есть google analytics или кнопка google+?
Вы правы: если на сайте есть Google Analytics и (или) кнопка Google+, то хуже ему ужé не будет.
Можно попробовать пойти ещё дальше. Вставляем наш js-код, нажимаем кнопочку и собирается версия, которая лишь выполнит ваш код, никакого лишнего кода, ничего лишнего.
Концовка лексически глупая получилось, извиняюсь. Пойду спать.
*получилась
После того как поработаешь с Dojo, мечтаешь о хотя бы 240 Кб:)
Странно использовать Dojo там где нужно JQuery
И jQuery там где можно обойтись вообще без него.
Те проекты, где размер библиотеки в 240 Кб действительно играет решающее значение, имеют достаточно прибыли и штата, чтобы урезать его под свои нужды.
Для остальных функциональность >> размер
Один пример:
На одном проекте я использовал live() на событие submit форм. Но через некоторое время выяснилось, что live() именно на submit не работает в IE. Попробовал другие варианты «из коробки», ничего не решало проблему. Потом попробовал последнюю версию плагина livequery — работает. По-моему этот пример показывает, что что-то тут не так. Да, live() частенько используется и, если бы это был плагин, подключать каждый раз не хочется, но новые версии отдельных плагинов выходят быстрее. Да и, если задуматься, больше чем на половине проектов мне этот live() совсем не нужен.
Я бы удалил из jQuery поддержку старых браузеров (например IE<9)
JQuery open-source ;)
Согласен, но, честно говоря, вникать в код нет желания — хочется, чтобы это сделали те, кто «в теме».
Если цель — быстродействие, то ссылайтесь на кэшируемый доверенный источник, jquery, размещенный на гуглокоде. 50 сайтов с этим jquery вызовут лишь одну реальную загрузку этого файла.
Фреймворк для того и нужен, чтобы упрощать жизнь программистам за счет подгружаемого объема, какой смысл уменьшать его функциональность? Если не нравится — есть альтернатива — писать на голом js.
какой смысл уменьшать его функциональность?
А тогда какой смысл в плагинах jQuery? Давайте их всех запихаем в один файл :)
Нет, не пора. Не хочешь полную — юзай мини, не хочешь мини — вообще не юзай, напиши свой.
Выбрал «мне пофиг» потому что так оно и есть. Было бы счестье, еслиб только в одном ядре Jquery была проблема. Народ не чурается вместе с ним тащить еще весь UI из Х скриптов. И всем похер.
В свое время размер jQuery (что-то около 9k в gzip) стал для меня определяющим преимуществом перед монстрообразными фреймворками типа prototype.js, да и перед собственными велосипедами, которые не сильно легче jQuery получались, а умели много меньше.
Печально видеть, что она сама плавно превращается в такого монстра.

Ждем очередного популярного микрофреймворка, который напишут без оглядки на древние браузеры и совместимость с древними версиями самого себя.
(от собственного нано-велосипеда или урезанной сборки jQuery щастья не будет, потому что важна база сторонних плагинов)
Думаю, урезать нет смысла.
Кому нужно только необходимое — можна спокойно пользоваться старыми версиями!
Меня как всегда заминусуют, но тем не менее, я считаю что нужно думать только своей головой и самому писать себе библиотеки, в зависимости от требуемых задач. Можно и в фреймворк конечно залезть, чтобы вырезать от туда уже готовое решение, но главное — это думать, а не ждать, когда подумают за тебя.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории