Статьи Архив статей

Автор: Мациевский Николай aka sunnybear
Опубликована: 8 апреля 2009

Web Optimizer. Версия 0.3.5

Web Optimizer (Веб Оптимизатор) — приложение, автоматизирующее все действия по клиентской оптимизации для произвольного сайта. На данный момент оно существует в виде отдельного приложения (которое нужно самостоятельно установить на сайт). Приложение протестировано и установлено на таких CMS как Drupal 5 и 6, Joomla 1.0 и 1.5, Wordpress 2.7 и многих других.

Подробное руководство по установке.

Загрузить версию 0.3.5.

Загрузить мини-установщик версии 0.3.5.

Список изменений

Сразу хочется поблагодарить всех, кто принимает участие в тестировании и рассказывает о возникающих проблемах. Дело, действительно, движется вперед, и движется очень неплохим темпом. Улучшения по сравнению с версией 0.3:

  • Улучшено вычисление директорий установки и работы Web Optimizer. Теперь его можно установить в произвольную директорию.
  • На основе уже опубликованного алгоритма для CSS Sprites переработана текущая логика и улучшено объединение файлов.
  • Добавлен список файлов для исключения при создании CSS Sprites.
  • Добавлен «агрессивный» режим при создании CSS Sprites. При его включении все изображения с повторением по отдельным осям (repeat-x и repeat-y) будут объединятся в один соответствующий файл (без влияния абсолютных размеров их контейнера). Это может ускорить загрузку страницы в одних случаях и «сломать» дизайн в других. Собственно поэтому данная настройка по умолчанию выключена.
  • Добавлено альтернативные методы уменьшения Javascript-файлов на основе Packer от Dean Edwards (YUI будет в следующих версиях).
  • Добавлен список файлов для исключения при объединении Javascript-файлов.
  • После многочисленных жалоб «ненавязчивый» Javascript по умолчанию выключен в конфигурации. Вместо него производится простое объединение файлов из head страницы. Эту настройку можно по-прежнему включить обратно, если клиентская логика позволяет это сделать.
  • Добавлен мини-установщик (один PHP-файл в 4 Кб), который нужно скопировать в корень сайта и открыть после этого в браузере. Он сам загрузит последнюю версию приложения и запустит его установку. Достаточно удобно, если не хочется возиться с загрузкой и распаковкой архива.
  • Добавлена локализация. Доступные языки: EN и RU. Желающие создать перевод приложения для других языков пожалуйста, отпишитесь в комментариях или в приват.
  • Установка и работа Web Optimizer успешно протестирована на следующих системах:
    • Joomla 1.0.15
    • Joomla 1.5.0
    • Joomla 1.5.9
    • Joomla 1.5.10
    • Drupal 6.10
    • Drupal 5.16
    • Wordpress 2.7.1
    • Typo3 4.2
    • Simpla
    • PHP Nuke 8.0
    • и некоторых других
  • Конфигурационный файл изменился на config.webo.php для совместимости с PHP-Nuke и некоторыми другими системами.
  • Естественно, исправлено большое количество мелких недочетов и фактических неточностей.

Небольшой FAQ

После большого числа вопросов хочется осветить некоторое количество проблемных моментов (в основном они касаются Javascript-логики). На основе таких советов в дальнейшем будет сформировано руководство по использованию Web Optimizer.

Во-первых, как уже было указано выше, далеко не все системы позволяют легко переключиться на использование «Ненавязчивого» Javascript. Если вы слышите этот термин впервые, то лучше ознакомиться с соответствующим циклом статей. Использование этого подхода позволяет существенно повысить скорость загрузки сайта, однако требует соблюдения некоторых правил при использовании клиентской логики на сайте. Так как сейчас по умолчанию эта настройка выключена, то проблем со стандартной установкой Web Optimizer это не принесет.

Во-вторых, в некоторых случаях (довольно редких) Javascript-код может быть написан не очень корректно, в результате чего при разборе и уменьшении его по спецификации (с помощью JSMin) возникают проблемы, связанные с неработоспособностью определенных частей. В этом случае рекомендуется проверить текущие скрипты с помощью JSLint и(ли) воспользоваться альтернативными механизмами для минимизации кода (Packer, YUI Compressor), а может быть, даже отключить сжатие скриптов (если включен gzip, то его будет вполне достаточно).

В-третьих, иногда ситуация портят байты, оставленные Блокнотом в начале файле при его редактировании в UTF-кодировке. В некоторых случаях они способны поломать верстку, иногда же браузеры их игнорируют, поэтому проблема не всегда бывает понятна. Рекомендуется в случае «поломанных» файлов проверить исходные (CSS- или Javascript-файлы) на предмет наличия в их начале специфических символов (естественно, в самом Блокноте они не видны, проверять стоит любым альтернативным текстовым редактором). И удалить их оттуда.

В-четвертых, если в дизайне сайта используются полноцветные изображения и не используется прозрачность, то имеет смысл включить настройку «Сохранять CSS Sprites в JPEG»: тогда размер финальных файлов будет существенно меньше. Если используется прозрачность, то PNG подходит значительно лучше.

Как обычно любые пожелания и комментарии приветствуются. Сейчас для проекта нужно:

  • Функциональные требования для дальнейшего улучшения.
  • Перенос на Perl, Java, Python — кто-нибудь может посодействовать?
  • Разработка логотипа и фирменного стиля (сейчас все веб-приложение — это 5-7 простых страничек, работы в этой области планируется не так много). Если желающих сделать дизайн для приложения наберется много — устроим конкурс и выберем лучшее решение по мнению пользователей :)
  • Желание и немного времени для установки приложения на свою систему. Обо всех проблемах можно и нужно писать в комментариях или в приват.

Сайт проекта пока находится только в Google Code: code.google.com/p/web-optimizator/

Загрузить последнюю версию приложения можно здесь: code.google.com/p/web-optimizator/downloads/list

Любые проблемные вопросы можно отправлять сюда: code.google.com/p/web-optimizator/issues/list

А исходный файл для локализации находится по адресу: web-optimizator.googlecode.com/svn/trunk/libs/php/lang/en.php

Канал на Twitter с последними новостями: twitter.com/dreamwind

Читать дальше

Все комментарии (habrahabr.ru)