2010-04-28 3 views
4

Я использую только несколько основных функций jQuery на своем сайте.
Как удалить неиспользуемый код jQuery?
Зная только основы, я просмотрел код и не был уверен, с чего начать. Если бы вы могли указать мне в правильном направлении, это было бы оценено.Как я могу уменьшить jQuery?

Спасибо.

+6

Это было бы написание нацистов на самом деле;) (Это GRAMMAR btw ... не стало ли это рекурсивным?) – spender

+0

Кроме того, вы можете минимизировать полученную библиотеку jQuery, чтобы сконденсировать ее примерно на 55% (приложение для приложений googles) с уничтожением кода. хотя я согласен с @strelokstrelok - его шаг unessasery, поскольку нечетное объявление на вашей странице будет иметь больший размер файла. – Glycerine

ответ

13

jQuery сам по себе не построен для выборочного использования. Существует множество взаимозависимостей между его собственными функциями, и источник не выложен, чтобы быть легко модульным. В отличие от ситуации с такими плагинами, как jQuery-UI, ядро ​​jQuery в значительной степени занято «take-it-or-leave-it».

Если вы использовали только несколько простых функций, вы можете переписать их на простом JavaScript. Если основная функция, которую вы используете, - это селектор, вы можете использовать Sizzle, который является базовой селекторной библиотекой, которую сам jQuery использует. В противном случае ... на самом деле.

+3

Стоит отметить, что такая модульность является одной из ключевых целей следующей крупной версии jQuery - чтобы сделать библиотеку более качественной, позволяя разработчикам указывать (грубо) те части jQuery, которые им нужны, и пропускать отдых. –

4

Вопрос в том, почему? Производственная версия jQuery 1.4.2 - всего 24Kb. При правильном управлении кешем файла он будет загружаться только один раз и кэшироваться. Зачем беспокоиться?

+1

Дорогие интернет-налоги, вы знаете. – jweyrich

+3

Strelokstrelok, будучи абсолютно правильным, вы не отвечаете на вопрос Томми, который справедлив и прост. –

5

Если вы хотите еще больше уменьшить размер кода, минимизировать и gzip или сдуть его. Остерегайтесь того, что gzipped-код должен быть несжатым до его выполнения, что вызывает задержку. Страница загрузки jQuery предлагает уже измененную и gzip-версию.

Другой вариант, который вы могли бы изучить, - это использование jQuery, размещенного на CND, то есть jQuery, размещаемый сторонними организациями, такими как Google или Microsoft. Details in the jQuery download page.

+0

Хорошее примечание - googles ajax libs! Upvote. – Glycerine

+0

просто замените «gzip» на «deflate», и я согласен. См. [This] (http: // stackoverflow.com/questions/1574168/deflate-compression-browser-compatible-and-benefits-over-gzip) –

+0

Я не знал о преимуществах дефляции над gzip. Благодаря! – Cesar

2

Как уже упоминалось, вам не нужно это делать.

Если вы обеспокоены пропускной способности, вы можете reference jQuery from Google's AJAX API, как это:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script> 

Чтобы ответить на вопрос, что будет крайне сложно.

Как вы заметили, jQuery написан очень красно и эффективно и не имеет легко снимаемых фрагментов.

0

Помимо советов по минимизации/сжатию/CDN-хостинга вашего Javascript, который вы должны сделать для любой библиотеки Javascript, посмотрите на Zepto, целью которого является более тонкая альтернатива jQuery, разработанная для мобильного браузера. Это не замена для jQuery, но поддержка всех важных вещей, таких как селекторы, операции AJAX и утилиты. Я написал краткую запись в блоге на эту тему: http://blog.straylightrun.net/2012/10/23/so-you-want-to-use-jquery-in-your-javascriptwidget/

Смежные вопросы