Мы снова здесь со свежей версией приложения для автоматизации клиентской оптимизации — Web Optimizer. Больше месяца прошло с момента выхода последней стабильной версии, более 300 реальных сайтов испытали феноменальное ускорение, но нам этого показалось мало. И мы сделали хороший продукт еще лучше.
Итак, встречайте: версия 0.5 под кодовым именем cheetah (гепард), Release Candidate 3.
Загрузить: code.google.com/p/web-optimizator/downloads/list
Что нового?
Естественно, весь месяц мы не сидели сложа руки и писали, тестировали, обновляли и тестировали вновь. Изменения по сравнению с версией 0.4.5:
- Одним из главных бонусов является включение в состав Web Optimizer последней версии библиотеки для форматирования и оптимизации CSS-кода — CSS Tidy (наверное, в ближайшем будущем выйдет ее новая версия, 1.4, а то уже все заждались). Исправлено несколько очевидных и не очень ошибок (в частности, связанных с CSS3-селекторами).
- Была существенно переработана логика самого Web Optimizer для максимальной производительности. По последним тестам время его работы для отдельной страницы составляет 3-10мс (в среднем сайт на Joomla! требует 200-500мс для выполнения всей серверной логики).
- Исправлена проблема с «белым экраном» при использовании CSS Sprites (связана с «вылетом» GDLib при попытке создать слишком большое изображение). Теперь при недостатке памяти просто создается не такой большой спрайт, как хотелось бы. Видимо, в будущих версиях алгоритм расходования памяти будет существенно улучшен.
- Полностью обновлен пользовательский интерфейс (спасибо fade). Мы продолжаем собирать деньги, чтобы отблагодарить автора дизайна. Еще не поздно внести свою лепту.
- Авто-изменение PHP-файлов CMS включено по умолчанию. В случае невозможности такого изменения на последнем шаге выводится полный список необходимых изменений для файлов.
- Добавлена возможность создать «защищенную» установку: Web Optimizer может находиться в произвольной директории и быть закрытым при помощи
.htpasswd
. Более подробно данная тема раскрывается в статье про настройки. - В настройки Web Optimizer добавлены ссылки на соответствующие статьи, в которых заявленные техники освещаются в полном масштабе.
- Добавлено достаточно простое кэширование для HTML-документов. Помогает в случае простых сайтов снять нагрузку с сервера (создаваемые HTML-документы надежно кэшируются). Доступные настройки: время кэширования, регулярное выражение для запрета кэширования, список USER AGENTS для форсирования кэширования, возможность сделать быстрый сброс документа.
- Благодаря сотрудничеству с ort значительно улучшена стабильность работы и функционирование распределения изображений по статическим хостам. Все обнаруженные проблемы совместимости с LiveStreet 0.3 были устранены.
- Добавлена возможность оптимизации фоновых изображений через API сервиса smush.it.
- По умолчанию добавлено статическое архивирование для CSS/JS-файлов. Это означает, что если сжатием у вас заправляет сервер, то ему не придется каждый раз сжимать эти файлы перед отдачей клиенту — gzip-версии будут храниться на сервере рядом с обычными и отдаваться в случае необходимости. Даже если сжатием заправляет PHP, все равно он будет отдавать уже готовые сжатые файлы, а не запускать
ob_gzhandler
каждый раз. - Улучшен алгоритм работы
data:URI
: немного увеличен максимальный размер файла и добавлены исключения для некоторых типов (.htc
,.cur
,.eot
и т.д.). - Добавлена возможность вынести сгенерированный JS-файл перед
</body>
. Также добавлена возможность вынести загрузку счетчиков и рекламы в самый низ документа, чтобы избежать блокирующего влияния скриптов. - Добавлена очистка кэша из панели администрирования.
- Добавлена возможность корректно сжимать HTML в одну строку.
- Добавленные системы:
- Textpattern 4.0
- Kohana 2.3
- phpBB 3.0
- Yii 1.0
- SMF 1.1.8
- IPB 2.3.6
- Bitrix
- cogear 1.0
- Ну и сотня-другая не столь крупных исправлений и улучшений.
Что дальше?
Видимо, главным приоритетом для новой версии станет максимальная совместимость с самыми различными вариантами поддерживаемхы CMS и максимальная производительность при любых настройках и любом серверном окружении (не у всех же сайтов выделенный сервер с 1Гб оперативной памяти?). На данный момент есть весьма интересная задача по оптимизации создания CSS Sprites (как показала практика, они стабильно создаются уже в 95-99% случаев) в случае ограниченной памяти. Если кто соберется помочь — пишите в комментариях, приват и по указанным контактам. Только давайте не так, как вышло с версткой для нового интерфейса, когда 5 верстальщиков один за другим сошли с дистанции.
Замеченные ошибки и документации
Документация и описание приложения будет ширится и расти. на данный момент уже опубликована статья с описанием настроек, готова к публикации статья с пошаговым руководством по установке. В процессе подготовки статья с описанием известных проблем под наиболее популярные CMS.
Часть документации (в основном, касательно принципов работы) выложена на английском здесь: code.google.com/p/web-optimizator/w/list
Некоторые известные проблемы и методы их решения уже описаны в предыдущей статье. Если вы обнаружили некорректное поведение Web Optimizer для вашего сайта, вы можете опубликовать описание ошибки (требуется Google-аккаунт) или посмотреть все известные (или решенные) вопросы. На данный момент среднее время решения проблемы составляет около суток (обычно несколько часов).
Также можно попробовать решить проблему в интерактивном режиме, используя указанные контакты.
Монетизация
На данный момент доступна платная установка и настройка приложения дл вашего сайта. Заказать можно здесь. Также есть вероятность того, что будет выпущена отдельная, коммерческая ветка приложения, которая будет каким-либо образом продаваться (политика лицензирования обсуждается).
Если у вас есть какие-то конкретные коммерческие предложения, их всегда можно озвучить по указанным контактам.
Эффективность
Несколько результатов использования Web Optimizer (для «чистой» установки системы, без каких-либо предварительных оптимизаций) приведено здесь. Оценка YSlow поднимается до 89-97, скорость клиентской загрузки в 2-3 (реже 3-5) раз. Сам Web Optimizer после создания кэшированных файлов тратит всего 3-10мс на проверку и обновление выходного HTML-документа (при настройках по умолчанию, корректное сжатие HTML в одну строку — достаточно ресурсоемкая операция и может занимать еще 50-100мс).
Ну, вроде все. До новых встреч :)
Загрузить Web Optimizer: code.google.com/p/web-optimizator/downloads/list
Поддержать проект материально: sprites.in/donate