2014-01-28 4 views
1

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

Если кэшировано только текстовое содержимое, каковы преимущества кеширования таблицы стилей над ее вложением (где он не может быть кэширован)?

+1

Если браузеры кэшировали визуализированные представления, я уверен, что им понадобится несколько ГБ диска для данных за один день. И было бы бессмысленно кэшировать активы. –

+0

Извините, если это то, что вы поняли. С «внутренним представлением» я не имел в виду визуализированные представления, а скорее структуру данных, содержащую синтаксические правила CSS. Я отредактировал вопрос соответствующим образом. – prayerslayer

ответ

1

Кэширование предназначено для уменьшения времени загрузки путем замены обычно медленной загрузки сети с типично быстрым локальным чтением файла. Таким образом, это общее решение (вы можете кэшировать любой вид активов, от HTML до CSS, JavaScript, PDF, Excel ...), и это может принести большую экономию времени (обычно секунды, даже минуты для действительно медленных сетей). Он также хорошо работает с динамическим HTML.

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

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

Я бы сказал, что кеш является полезным преимуществом, не так ли? Создание встроенного CSS означает больше работы для веб-мастера (вам либо нужно написать код на стороне сервера, который вводит файлы CSS, либо пользоваться обслуживанием, даже не имея их). Он также увеличивает размер HTML-документов.

+0

Извините, если мой язык запутан. Я не предлагаю кэшировать узлы HTML вместе со своим стилем CSS, это было бы бесполезно, как вы уже упоминали. Мне просто интересно, помнит ли браузер, что находится в таблице стилей вместо необработанного состояния. Подобно тому, как вы помните сюжет книги без необходимости читать ее снова (даже если вы действительно быстро читали). – prayerslayer

+0

Ну ... Каковы бы ни были детали, разбор CSS не займет столько времени, чтобы это стоило того. –