Компилятор таблиц стилей Google переименование CSS

В настоящее время я использую Closure Compiler только в файле javascript. Теперь я также хочу минимизировать и переименовать классы CSS с более короткими именами.

Есть ли способ, чтобы избежать необходимости переписывать каждый селектор на основе строки CSS jquery в моем файле.js (т.е. $('#SomeID') или же $('.SomeClass')) к селектору на основе переменных? Поскольку большая часть HTML-кода фактически генерируется во время выполнения, я мог легко переместить скелет HTML, который изначально находится на странице, в файл.js, и функция document.ready сначала поместила скелет HTML, необходимый для приложения, на страницу. Будет ли это предотвращать перезапись CSS-селекторов, или же селекторы все еще нужно будет переписывать как свойства объекта?

Документ находится здесь, но я не нашел его в чистоте http://code.google.com/p/closure-stylesheets/

Спасибо за ваши предложения.

1 ответ

Решение

Краткий ответ на ваш вопрос: "Нет, нет".

Учитывая, что вы указали, что используете здесь селекторы jQuery, мы видим, что любой инструмент для этой работы должен будет переписать все три ваших HTML, CSS и JS кода.

В частности, код JS будет очень сложным из-за возможности создания селекторов jQuery с использованием подстрок - например, $('#prefix_' + suffix), Я не знаю, делали ли вы такие вещи или нет, но способность делать это делает практически невозможным создание полностью надежного инструмента, который может переименовывать ваши идентификаторы и классы, но при этом ваш код JS работает правильно. Если ваш код относительно прост, возможно, можно написать его так, чтобы он работал для вас, но никто не собирается выпускать инструмент для общего пользования, который так легко сломался бы.

Кроме того, я не верю, что такой инструмент был бы особенно полезен. Это звучит как случай чрезмерной оптимизации.

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

Поэтому мой совет - потратить ваше время на выяснение, где в вашем коде есть настоящие узкие места, и разобраться с ними. Эффект, вероятно, будет намного больше, чем все усилия по минификации, которые вы уже сделали в целом.

Другие вопросы по тегам