Сжатие CSS и объединяющийся / js минификация - Лучше, чтобы сделать во времени выполнения или во время изготовления?

Если вы установите Application.ShutdownMode на OnExplicitShutdown, можете ли вы избежать включения ShutdownCallback в очередь диспетчера и продолжать делать все, что вы хотите, независимо от окон? Я не проверял это, но кажется потенциальным решением, а также использованием свойства Application.MainWindow , которое можно изменить на лету.

6
задан Mark Gibaud 22 June 2009 в 11:35
поделиться

5 ответов

Я думаю, что хороший подход - использовать разные стратегии для разных сред:

  • нет сжатие для разработки (для разработки и отладки)
  • время выполнения сжатие для тестовой среды (гибкое, не критичное к производительности)
  • время сборки сжатие для промежуточной и производственной среды (протестировано, критично для производительности)

I имеют некоторый опыт использования компрессора YUI как для Javascript, так и для CSS, и узнали (на собственном горьком опыте), что тестирование минифицированных JS и CSS действительно очень важно.

Создание статических миниатюрных файлов JS и CSS как части ваша сборка для производства имеет следующие преимущества:

  • они протестированы
  • статические файлы, могут обслуживаться без ASP.Накладные расходы NET
  • могут быть кэшированы браузером
  • должны быть сжаты с веб-сервера
8
ответ дан 8 December 2019 в 14:46
поделиться

Лучше всего не делать этого вообще , поскольку все современные браузеры и серверы обрабатывают Gzip-кодирование. Посмотрите на числа:

  • cfform.js - 21k
  • cfform-minified.js - 12k
  • cfform.js.gz - 4.2k
  • cfform-minified.js.gz - 2.2k

Это довольно большой файл JS с множеством ненужных пробелов, но в конечном уравнении вы сохранили колоссальные 2 КБ !! Не только это, но и благодаря кешированию, это экономия для каждого посетителя, а не для каждой страницы. Ух, теперь это того стоило всех хлопот, не так ли?

Вы бы сэкономили в 10 раз больше, обрезав ширину в пикселях в верхней части баннера, а 99% пользователей широкополосного доступа сохранили им около 1 миллисекунды времени загрузки. Разбей ленты и шампанское!

Сжатие JS еще хуже, раз уж ты вы просто поразили своих клиентов бременем распаковки на КАЖДОЙ СТРАНИЦЕ. И экономия после использования gzip ничтожна.

Серьезно. Дополнительная сложность и отладка не стоят того, если вы не ориентируетесь на рынок мобильной связи (и даже при условии, что пользователи все еще используют CDMA, а не 3G) или не имеют миллиарда обращений в день. В противном случае просто не беспокойтесь.

4
ответ дан 8 December 2019 в 14:46
поделиться

Я думаю, вам следует делать это во время выполнения, за исключением случаев, когда ваши файлы CSS и JS действительно огромны (более 1 МБ). Кеш браузера можно принудительно настроить, установив несколько заголовков http , и если вы хотите, чтобы ваше приложение принудительно перезагружало на стороне клиента, просто измените параметр HTTP:

<link rel="stylesheet" type="text/css" href="~/StyleSheetHandler.ashx?stylesheets=~stylesheets/master.css&token=1" />

Вы можете изменить токен, чтобы принудительно перезагрузка CSS на стороне клиента.

0
ответ дан 8 December 2019 в 14:46
поделиться

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

Джош

3
ответ дан 8 December 2019 в 14:46
поделиться

Вы делаете это во время выполнения, но только тогда, когда вам нужно. Это дает вам максимальную гибкость. Это особенно проблема с PHP, у которого в противном случае нет шага сборки (т.е. вы не хотите добавлять его, если у вас его нет в противном случае), но все же проблема для других платформ, которые делают это.

Риск само- продвижение, вы можете прочитать Повышение уровня Javascript в PHP и Повышение уровня CSS в PHP , в которых описываются проблемы, подходы и лучшие практики. Примеры на PHP, но сам код тривиален. Проблемы и принципы применимы к любой веб-платформе.

1
ответ дан 8 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: