Каков наилучший способ упаковать код JavaScript без проблем с производительностью? - PullRequest
6 голосов
/ 22 сентября 2008

Я ищу способ сжатия кода JavaScript для iPhone. Есть ли способ избежать использования большого количества процессорного времени на маленьком и довольно медленном устройстве?

Ответы [ 8 ]

9 голосов
/ 22 сентября 2008

Используйте YUI Compressor

5 голосов
/ 22 сентября 2008

Используйте JSMin и избегайте упаковщик , который действительно потребляет больше ресурсов процессора и медленнее "выкачивает"

3 голосов
/ 22 сентября 2008

Мы использовали js_compactor и JavaScriptLint для «компиляции» и сжатия нашего JavaScript в нашем автоматическом процессе сборки. Следующим шагом сборки будет сжатый JavaScript и объединение связанных файлов в один пакет. Повышение производительности было значительным, но имейте в виду, что вы торгуете возможностью отладки.

Уменьшение количества файлов, передаваемых клиенту, значительно повысит производительность, когда файлов больше, чем несколько. Как правило, браузеры одновременно открывают только 2 подключения к одному серверу, поэтому даже если вы передаете сжатые и свернутые файлы, браузер тратит значительную часть накладных расходов на проверку своего кэша. yslow помогли нам выявить почему страницы загружались очень долго и помогли нам сконцентрировать наши усилия по оптимизации. Мы проинструктировали нашу среду либо использовать raw-файлы , либо свернутые и сжатые версии .

3 голосов
/ 22 сентября 2008

Я люблю ShrinkSafe . Он интерпретирует ваш код в Rhino, затем возвращает сжатый код. Поскольку он работает с реальным интерпретированным кодом (вместо сложных вычислений строк), он никогда не будет разбирать код и не сможет найти различия между открытыми и закрытыми переменными.

Это инструмент отличного качества.

1 голос
/ 23 сентября 2008

Вы можете попробовать различные инструменты на JavaScript CompressorRater . Насколько я знаю, все инструменты, кроме упаковщика, не влияют на скорость выполнения JavaScript, они только удаляют пробелы, переименовывают переменные и тому подобное.

Я сам считаю YUI Compressor лучшим.

Всегда полезно сначала проверить код в JSLint , чтобы убедиться, что компрессор его правильно понимает.

1 голос
/ 22 сентября 2008

Я считаю, что Safari на iPhone поддерживает вывод gzip, поэтому вы можете использовать что-то вроде mod_deflate. У меня были лучшие результаты, используя этот метод. Довольно много вещей, связанных со сжатием JavaScript, - абсолютный мусор, и для его распаковки требуется больше времени, чем для загрузки файла большего размера. JSMin выглядит довольно хорошо, хотя.

0 голосов
/ 23 сентября 2008

Я только что прошел этот маленький танец за последние несколько дней. Мы попытались использовать Packer , но обнаружили, что выполнение нашего упакованного JavaScript занимало более 2 секунд (не говоря уже о блокировании других загрузок). На основании этой статьи мы перешли на YUI Compressor . Размеры сжатых файлов не только меньше, но и меньше 300 мс.

0 голосов
/ 22 сентября 2008

Убедиться, что ваш веб-сервер правильно обслуживает файлы, сжатые / сдутые, когда клиент поддерживает это, обычно более эффективно, чем минимизировать сам программный код. Конечно, использование обоих приводит к еще меньшим размерам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...