Посоветуйте способы уменьшения объема скриптов

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем DizzZ, 23 янв 2006.

Статус темы:
Закрыта.
  1. DizzZ

    DizzZ Гость

    Довольно давно столкнулся с проблемой, которая мне до сих пор не дает покоя.
    Есть скрипт, но он большой и его объем надо уменьшить. Поскольку за трафик приходится платить. Да и пользователей жалко :D
    Можно руками его править, но очень долго и вообще как-то тупо.
    Пробовал кучу разного софта: HTML Zip, HTMLCompress, w3compiler, packer и еще кучу всего.
    В некоторых софтинах встретилась довольно забавная тенденция - скрипты не работают после сжатия (в частности такое наболюдалось после обработки w3compiler'ом).
    Вторая проблема - из-за использования zip-подобного алгоритма (а также из-за того, что распаковщик написан на JavaScript) скрипты разжимаются довольно долго (иногда несколько секунд, такое наблюдалось в HTML Zip, например).
    Короче, решил свою софтину написать - eCoder. Вышло довольно неплохо (http://ecoder.org.ua), но второй недостаток хоть и сгладился, но не исчез - скриты все равно довольно долго распаковывались (хотя качество сжатия было существенно лучше, чем у вышеописанного софта.)
    Для работы этой софтины требовался еще и .NET 1.1, что тоже достоинством не назовешь :-/ . Но делать нечего, приходилось пользоваться тем, что есть.
    Это было где-то год назад.
    Со временем я все же пришел к мысли, что надо не паковать, а по возможности оптимизировать, удаляя лишнее и укорачивая имена переменных.
    Поискал такой софт. Кроме упомянутого выше w3compiler'а нашел еще кучу барахла, но скрипты в результате обработки либо мало уменьшались в размере, либо переставали работать, либо и то и другое :D
    И опять я решил посоревноваться. Вроде бы, на этот раз успешно :)
    Софтина вышла небольшая, кроссбраузерная (и, следовательно, кроссплатформенная). Поскольку писал на JavaScript, работает это все не слишком быстро, но на мой взгляд вполне нормально (на оптимизацию скрипта в 50К уходит обычно несколько секунд). Скрипты вроде не портит.

    Но вот какой вопрос: может кто подскажет, как еще можно уменьшить объем скриптов?
    Своей софтной (я обозвал ее TrickyScripter) я решил поделиться со всеми желающими (не жалко =)), так что ваши советы не пропадут зря, а принесут пользу вам и другим разработчикам.
    На данный момент TrickyScripter уменьшает объем скриптов обычно вдвое-втрое. Но, я думаю, это не предел, если каждый поможет, чем сможет :)
    Если кто хочет дать совет, побыть бета тестер или кому просто интересен этот проект - мыльте на scriptGuru@gmail.com (или просто пишите в этот топик)
     
  2. Guest

    Guest Гость

    Пришли мне на max-82@mail.ru. Потестю! :D
     
  3. Andrew Stephanoff

    Andrew Stephanoff Гость

    Пришли плз и мне, Andrew.Stephanoff [@] gmail.com.
    Или прикрепи здесь на форуме, чтобы можно было скачать.
    Очень полезная штука, буду рад потестить.
    Заранее спасибо :D
    P. S. А как у тебя происходит сжатие и оптимизация? Мне представляется, что необходимо убирать лишние пробелы, перевод строк, укорачивать имена переменных.
     
  4. DizzZ

    DizzZ Гость

    Не ожидал такого быстрого ответа :)
    Всем, кто просил вышлю эту софтину на мыло.
    Как прикрепить тут на форуме я не совсем понял :D
    Подскажите, если не трудно..
    -----
    спасибо, уже нашел как прикрепить файл - прикрепляю к этому посту.
     

    Вложения:

  5. ????

    ???? Гость

    <!--QuoteBegin-DizzZ+24:01:2006, 08:50 -->
    <span class="vbquote">(DizzZ @ 24:01:2006, 08:50 )</span><!--QuoteEBegin-->Как прикрепить тут на форуме я не совсем понял
    [snapback]29687" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Нажми "Редактировать" на любом своём посте и увидишь под формой ответа "Загрузка файлов"
     
  6. Guest_DizzZ_*

    Guest_DizzZ_* Гость

    Если кто обнаружит глюки, пишите на scriptGuru@gmail.com
     
  7. Victor Gr.

    Victor Gr. Гость

    Ну, калі на сэрвере ёсць PHP з zlib, то чаму бы і не? :p

    Пішаш <script src='script.php'></script>

    А ў script.php:

    <?php
    ob_start ('ob_gzhandler', 9);
    header ('Content-type: text/javascript'); // ці які там MIME?

    print '
    код javascripts...
    ';
    ?>

    Ці чаму не?
     
  8. ????

    ???? Гость

    <!--QuoteBegin-Victor Gr.+13:02:2006, 22:47 -->
    <span class="vbquote">(Victor Gr. @ 13:02:2006, 22:47 )</span><!--QuoteEBegin-->Ці чаму не?
    [snapback]30551" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    1. не все поддерживают gzip
    2. если поддерживают - не всегда признаются (IE: если не стоит "использовать HTTP 1.1" - не отправляет access encoding)
    3. нагрузка на сервер (можно исправить одноразовым сжатием, а не на лету)
    4. так и php не у всех есть ;) и реже не установлен zlib
    5. даже если все ОК - почему бы для начала не пропустить через обфускатор/упаковщик, а потом сжать zlib'ом
     
  9. DizzZ

    DizzZ Гость

    Полностью согласен со всеми пунктами.
    Кстати, благодаря усидиям одного из пользователей я уже нашел и исправил несколько багов в TrickyScripter и несколько еще предстоит исправить (новая версия будет доступна где-то в течение недели).

    В будущем планируется оформить TrickyScripter в виде WSH-скрипта и плагина к Dreamweaver, но это уже будет платная версия. Бесплатная весрия тоже будет поддерживаться и будет доступна по тому же адресу, который указан в предыдущих постах (http://ecoder.org.ua/tricky/).
     
  10. iamyri

    iamyri Гость

    Объем можно уменьшить удалив лишние пробелы. Дримвивер хорошо с этим справляется. Но знак перевода на новую строку с одним пробелом должен оставаться, тогда и скрипты будут работать. Я со всеми страницами перед загрузкой это проделываю.
     
  11. Andrew Stephanoff

    Andrew Stephanoff Гость

    не обязательно, можно отделять ";"
     
  12. iamyri

    iamyri Гость

    Не спорю. Не пробовал. Возможно. Одно знаю точно - пробелы нужно удалять. Зачем ненужный мусор и лишний трафик ? Выйгрыш во всем.
     
  13. Andrew Stephanoff

    Andrew Stephanoff Гость

    Если учесть, что ява-скрипты кешируются и редко достигают больших размеров, то вряд ли возникнет большой траффик.
     
  14. iamyri

    iamyri Гость

    Конечно. Не спорю. А еще надо всегда стараться помещать все скрипты в отдельные файлы и запирать их в закрытом от роботов месте. Роботы не любят служебный код.
     
Загрузка...
Похожие Темы - Посоветуйте способы уменьшения
  1. KhNarg
    Ответов:
    5
    Просмотров:
    894
  2. IllusionYes
    Ответов:
    0
    Просмотров:
    988
  3. megobite
    Ответов:
    3
    Просмотров:
    1.495
  4. Shandrik
    Ответов:
    0
    Просмотров:
    1.360
  5. RadoXX
    Ответов:
    2
    Просмотров:
    1.438
Статус темы:
Закрыта.

Поделиться этой страницей