Часто даже использование сжатия данных посредством сервера IIS не приносит требуемого результата по снижению объема передаваемых данных. Кроме того, сжатие не работает и не дает никакого эффекта с клиентами, которые его не поддерживают. В таких случаях требуется обратить внимание на сами передаваемые данные, в особенности данные из статических файлов: JavaScript-скриптов, CSS-стилей, файлов изображений и др.
Для уменьшения размера JavaScript-файлов существует целый ряд инструментов. Работа этих инструментов основана на том факте, что чаще всего JavaScript-файлы передаются в том же самом виде, в котором созданы разработчиком. То есть содержат массу символов разделителей, табуляции, переводов строк и комментариев, которые помогают разработчику лучше понимать код, но совершенно не нужны, когда речь идет о передаче от клиента к серверу.
Одним из таких инструментов по уменьшению размера JavaScript-файлов является Microsoft Ajax Minifier.
Инструмент Microsoft Ajax Minifier бесплатен и может быть свободно скачен по адресу:
http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34488.
Microsoft Ajax Minifier поставляется в виде утилиты командной строки вместе с документацией и отдельной сборкой, которая позволяет использовать функционал Microsoft Ajax Minifier в ваших собственных приложениях.
Использовать Microsoft Ajax Minifier просто. Например, следующая команда сожмет содержимое файла inputfilejs:
ajaxmin inputfile.js
Для вывода результата сжатия в другой файл потребуется добавить параметр -o:
ajaxmin inputfile.js -o outputfile.js
Кроме того, Microsoft Ajax Minifier имеет еще целый ряд параметров для тонкой настройки механизма сжатия JavaScript и представления результата. Ознакомиться со всеми доступными параметрами можно, запустив без параметров приложение ajaxmin из командной строки.
Минимизация и сжатие JavaScript-файлов может значительно сократить размер передаваемых от сервера к клиенту данных. Так, например, минимизация исходного кода библиотеки jQuery позволяет сократить ее размер с 125 до 53 Кбайт.
JavaScript-файлы, как и файлы со стилями CSS, могут быть сжаты для уменьшения размера передаваемых данных. Для решения задачи минимизации CSS-файлов существует ряд инструментов, самый популярный из которых CSSTidy.
CSSTidy можно скачать по адресу http://csstidy.sourceforge.net/.
Использование CSSTidy по заверениям и тестам авторов может дать в среднем 33 % сжатия файлов со стилями. Для управления работой инструмента у него присутствует ряд параметров. Для минимизации файла достаточно указать его имя как параметр:
csstidy mycssfile.css
Для записи результата в другой файл необходимо указать имя выходного файла в виде второго параметра:
csstidy mycssfile.css myoutputfile.css
Остальные параметры можно получить, запустив csstidy без параметров.
Поскольку изображения — это важная часть почти каждого веб-сайта в Интернете, уменьшение размера изображений может принести значительный прирост производительности при передаче данных от сервера к клиенту.
Для оптимизации разных типов изображений можно воспользоваться разнообразными инструментами:
□ для уменьшения файлов изображений типа PNG без потери качества можно использовать популярный инструмент pngcrush (адрес проекта в Интернете http://pmt.sourceforge.net/pngcrush/);
□ для уменьшения и оптимизации файлов формата JPEG используется другой инструмент — jpegtran (скачать можно по адресу http://jpegclub.org/), который позволяет, используя свойства JPEG, достигать более высокого уровня сжатия изображения;
□ для оптимизации GIF-изображений можно первоначально перевести их в PNG-формат с помощью инструмента gif2png (скачать можно по адресу http://www.catb.org/~esr/gif2png/). В случае, когда GIF-файлы анимированы, их можно оптимизировать с помощью инструмента GIFsicle (скачать можно по адресу http://www.lcdf.org/gifsicle/).
Кроме программных инструментов по оптимизации изображений на компьютере есть ряд онлайн-ресурсов, которые позволяют сделать это так же эффективно. Одним из таких ресурсов является Smush.It от компании Yahoo!, который расположен по адресу http://developer.yahoo.com/yslow/smushit/.