![]() |
Посоветуйте способы уменьшения объема скриптов
Довольно давно столкнулся с проблемой, которая мне до сих пор не дает покоя.
Есть скрипт, но он большой и его объем надо уменьшить. Поскольку за трафик приходится платить. Да и пользователей жалко :) Можно руками его править, но очень долго и вообще как-то тупо. Пробовал кучу разного софта: HTML Zip, HTMLCompress, w3compiler, packer и еще кучу всего. В некоторых софтинах встретилась довольно забавная тенденция - скрипты не работают после сжатия (в частности такое наболюдалось после обработки w3compiler'ом). Вторая проблема - из-за использования zip-подобного алгоритма (а также из-за того, что распаковщик написан на JavaScript) скрипты разжимаются довольно долго (иногда несколько секунд, такое наблюдалось в HTML Zip, например). Короче, решил свою софтину написать - eCoder. Вышло довольно неплохо (http://ecoder.org.ua), но второй недостаток хоть и сгладился, но не исчез - скриты все равно довольно долго распаковывались (хотя качество сжатия было существенно лучше, чем у вышеописанного софта.) Для работы этой софтины требовался еще и .NET 1.1, что тоже достоинством не назовешь :-/ . Но делать нечего, приходилось пользоваться тем, что есть. Это было где-то год назад. Со временем я все же пришел к мысли, что надо не паковать, а по возможности оптимизировать, удаляя лишнее и укорачивая имена переменных. Поискал такой софт. Кроме упомянутого выше w3compiler'а нашел еще кучу барахла, но скрипты в результате обработки либо мало уменьшались в размере, либо переставали работать, либо и то и другое :) И опять я решил посоревноваться. Вроде бы, на этот раз успешно :) Софтина вышла небольшая, кроссбраузерная (и, следовательно, кроссплатформенная). Поскольку писал на JavaScript, работает это все не слишком быстро, но на мой взгляд вполне нормально (на оптимизацию скрипта в 50К уходит обычно несколько секунд). Скрипты вроде не портит. Но вот какой вопрос: может кто подскажет, как еще можно уменьшить объем скриптов? Своей софтной (я обозвал ее TrickyScripter) я решил поделиться со всеми желающими (не жалко =)), так что ваши советы не пропадут зря, а принесут пользу вам и другим разработчикам. На данный момент TrickyScripter уменьшает объем скриптов обычно вдвое-втрое. Но, я думаю, это не предел, если каждый поможет, чем сможет :) Если кто хочет дать совет, побыть бета тестер или кому просто интересен этот проект - мыльте на scriptGuru@gmail.com (или просто пишите в этот топик) |
выдавать сжатые gzip'ом скрипты.
знать пхп. |
С чего ты взял, что я не знаю пхп и не пользуюсь гзипом? :)
Вообще несложно догадаться, что если из скрипты выкинуть весь мусор, то он и гзипом лучше сожмется. |
2DizzZ
знать пхп. это не значит знать его вообще а уметь писать нормально чтоб в скрипте не было лишнего мусора который потом и грузитса часами... а если есть такая проблема то лучше почитать книги умные по основам програмирования вобщем и оптимизацыи програм... |
Я говорил про JavaScript в первую очередь, так что РНР тут не при чем. В принципе, даже очень грамотно написанный скрипт можно уменьшить в пару раз.
|
А вынести в отдельный файл его? Он тогда больше не будет загружаться, броузер его будет брать из кеша %)
|
А у юзеров что оттого что скрипт размером больше будет страничка дольше грузиться?
Они напрямую к скрипту никакого отношения не имеют... |
Цитата:
Цитата:
|
Шаблонизирование как говорилось выше... Чтоб работало все с кешем.
<script src=function.js></acript> та же история и с css.Сжимай график. все выноси за рамки документа... Вот а вообще да смотря какой скрипт ..если только хтмл то то что я описал выше и если еще и пхп то полюбому работа с шаблонами и оптимиззация кода в официальном мануале по пхп об этом много сказано что например не используйте регепсы там где действительно можно обойтися без них такая же фигня и с циклами while и for.Вот так вообщем. и вот еще.. не надо изобретать в своих скриптах велосипед есть уже давно много классов готовых которые давным давно оптимизированныи по размеру и по функциональности используй также встроиный функции коих множество. Не надо писать класс который будет вычислять синусы и косинусы которые займут лишние килобайты строк веди есть готовые функции которые занимают 40 байт:) |
| Время: 22:42 |