2016-08-26 8 views
0

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

У меня есть большой кусок нового CSS, который я хотел бы реализовать на странице. У меня есть два варианта:

  1. Добавить CSS в существующий CSS узелок (уменьшенная CSS из ASP.NETs утилиты расслоения), таким образом недействительности кэш для этого расслоения
  2. Создать новый пакет и включить его в страницу (в тело), ​​тем самым вызывая новый http-запрос

Какой вы бы выбрали? # 1 аннулирует кеш, но предотвращает новый HTTP-запрос. # 2 создает новый HTTP-запрос, но использует кеш для другого набора CSS.

ответ

1

Зависит от того, какой новый CSS вы добавляете, но, вообще говоря, я бы пошел со сценарием № 2. Мне нравится использовать CDN для фреймворка CSS-файла, а затем использовать мой домен для размещения темы веб-сайта CSS и CSS-файла, специфичного для страницы. Используйте параллельные загрузки.

<!-- 1 http request to CDN for main framework, gets cached --> 
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/foundation/5.5.3/css/foundation.min.css"/> 

<!-- 1 http request to mydomain.com for main theme, gets cached --> 
<link rel="stylesheet" href="http://domain.com/css/themes/modern.min.css"/> 

<!-- 1 http request to mydomain.com for page-specific styles --> 
<link rel="stylesheet" href="http://domain.com/css/pages/product-detail.css"/> 
+0

Я тоже как бы наклонялся. Тем более, что новый пучок появится в теле, поэтому не будет блокирующим запросом. Я оставлю это открытым на несколько дней, чтобы получить другие ответы. Благодаря! –

0

В зависимости от скорости передачи.
В общем, гораздо лучше включить CSS в <head>, а не в отдельный файл.

Когда CSS находится в голове, браузер имеет все CSS, прежде чем он получит HTML. Таким образом, Браузер может начать рендеринг страницы еще до завершения загрузки HTML <body>.

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

Использование CDN добавит другой поиск DNS, если он еще не используется для другого содержимого.

Также убедитесь, что gzip включен.

#1 не отменяет кеш, если страница HTML кэшируется.

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