Подтвердить что ты не робот

Использовать меньше (css препроцессор) на стороне сервера или на стороне клиента

Каковы плюсы и минусы использования менее серверной стороны на стороне клиента в живой производственной среде? Почему я хочу преобразовать мой меньше в статический css и использовать это, когда собираюсь жить вместо этого? Как я понимаю, css кэшируется как на стороне сервера, так и на стороне клиента, поэтому скорость не должна быть проблемой, а js не доступна. Это не проблема, так как мое приложение очень зависит от javascript, поэтому, если оно недоступно, у меня будут большие проблемы. Я не совсем понимаю, как работает компиляция на стороне сервера. Спасибо.

4b9b3361

Ответ 1

Я работал над большим проектом, который использовал LESS. Основная проблема, с которой мы столкнулись с ее компиляцией на клиентской стороне (в средах разработки), заключается в том, что, поскольку для компиляции на стороне клиента требуется JavaScript, а печать делает страницу бумажной без включенного JavaScript, поэтому всякий раз, когда кто-либо печатает страницу, она будет полностью нестираться. Даже если ваше приложение использует большой объем JavaScript, как наш, если вы хотите поддерживать печать, вам нужно скомпилировать серверную часть или предоставить статический CSS.

Лучшим для нас решением было запустить node.js для компиляции серверной части LESS на лету во время разработки, а затем предварительно скомпилировать ее в один файл css gzipped при развертывании сайта для производства.

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

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

Ответ 2

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