Удаление ненужных функций jQuery

Helo,

Библиотека, такая как jQuery, полностью загружена и поставляется со многими функциями, которые мы не можем использовать в наших сценариях. Интересно, есть ли способ сказать, прочитайте мой сценарий, найдите все функции jQuery, которые я использую, и их зависимости, а затем удалите оставшиеся функции из библиотеки jQuery. Это может быть применено практически к любой библиотеке и на самом деле не является вопросом, специфичным для jQuery.

Дайте мне знать ваши мысли о том, как это достижимо. Я знаю, что это может быть головной болью позже, если, скажем, я добавляю новую функцию в свой код, и эта функция не существует в jQuery. Но я готов пойти на этот риск.

8
задан Alec Smart 24 August 2010 в 08:16
поделиться

4 ответа

Даже если я не знаю почему, вы можете сделать это:

Перейдите на http://github.com/jquery/jquery/blob/master/Makefile

Это make-файл из jQuery lib. jQuery разделен на несколько модулей, которые собираются вместе. Эти базовые файлы упорядочены в dependencys, так что вы можете удалить модули, которые не используете ...

Я не уверен на 100%, работает ли это, никогда не пробовал самостоятельно, но вы можете дать этому шанс.

2
ответ дан 5 December 2019 в 21:15
поделиться

Это было бы плохой идеей.

Во-первых, вы можете удалить, скажем, InArray , поскольку вы можете использовать базовую альтернативу javascript, но другие методы, которые вы сохраняете, могут полагаться на InArray.

Обычно методы jQueries используют друг друга для выполнения задач, это один из способов уменьшить размер пакета.

Если вы действительно хотите это сделать, я бы так сделал:

$M = MyjQuery = function(element,context)
{
    this.fn = {}
    this.extend = function(base,new)
    {
        //Extend them here
    }
}

И начать с нуля!

0
ответ дан 5 December 2019 в 21:15
поделиться

Если ваш JavaScript не очень динамичен по своей природе, вы можете попробовать компилятор закрытия.

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

Это удалит все неиспользуемые функции, которые могут нарушить ваш код. Я бы рекомендовал это только в том случае, если у вас есть тестовые примеры или ваш JS достаточно мал, чтобы полностью протестировать его вручную.

Простой пример оптимизации, которую делает компилятор:

function hello(name) {
    alert('Hello, ' + name);
}

hello();

будет сокращен до:

alert("Hello, undefined");

поскольку это все, что в основном происходит.

1
ответ дан 5 December 2019 в 21:15
поделиться

jQuery не предлагает пакетные загрузки, как это делают Prototype и MooTools, и собрать их самостоятельно, вероятно, будет сложно, потому что вам придется перебирать все зависимости вручную - и снова и снова для каждого нового выпуск jQuery.

Более того, в настоящее время размер полной библиотеки в сжатом виде составляет 24 КБ, я бы сказал, что размер не имеет большого значения. Библиотека загружается только один раз — если вы загружаете ее из CDN, она кэшируется централизованно, что делает ее возможной даже для медленных модемных соединений.

1
ответ дан 5 December 2019 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: