Браузер, Кэширующийся в приложении ASP.NET

PowerShell принципиально нечувствителен к регистру (например, "HEy" -like "hey" - True).

Если вы хотите использовать регистрозависимую версию like, используйте -clike.

13
задан Jason 5 June 2009 в 14:07
поделиться

5 ответов

Другой способ - сохранить статические изображения, CSS и js на другом сервере (таком как CDN ), у которого правильно установлен заголовок Expires. У этого есть два преимущества:

  1. Заголовок expires побудит браузеры и прокси-серверы кэшировать эти статические файлы.
  2. Сеть CDN разгрузит ваш сервер, обслуживающий статические файлы.
  3. Используя другое доменное имя для вашего статический контент, браузеры будут загружать быстрее. Это связано с тем, что обслуживание ресурсов с четырех или пяти разных имен хостов увеличивает распараллеливание загрузок .
  4. Если CDN настроен правильно и использует домен без файлов cookie , то у вас не будет ненужных файлов cookie вперед и назад.
6
ответ дан 1 December 2019 в 23:15
поделиться

Стоит иметь в виду, что даже без заголовков Cache-Control или Expires большинство браузеров будут кэшировать контент, такой как JS и CSS. Что должно произойти, так это то, что браузер должен запрашивать ресурс каждый раз, когда это необходимо, но обычно получает ответ «304 Unmodified», и браузер затем использует кэшированный элемент. Это все еще может быть довольно дорогостоящим, поскольку это круговой обход сервера, но сам ресурс не отправляется, поэтому передаваемые байты ограничены.

IE, оставшийся без конкретных инструкций относительно кеширования, по умолчанию будет использовать свою собственную эвристику для определения если он должен даже потрудиться повторно запросить элемент, который он кэширует. И это несмотря на то, что явно не сказано, что он может кэшировать ресурс. Его херистика основана на дате последнего изменения ресурса, чем старше он, тем менее вероятно, что он » Теперь я изменился, - вот его типичные рассуждения.

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

4
ответ дан 1 December 2019 в 23:15
поделиться

Если вы не настроите IIS для предоставления asp.net управления запросами js / css / image, он не увидит их по умолчанию, поэтому ваш лучший план (для долгосрочной поддержки) - это намеренная настройка заголовки ответов на вашем брандмауэре / диспетчере трафика / сервере или (лучше, чем большинство людей в мире на данный момент) для версии ваших файлов в пути, то есть:

Вместо напишите это в разметке:

http://www.foo.com/cachingmakesmesad.css

Используйте это:

http://www.foo.com/cachingmakesmesad.css?v1

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


Я думал, что ваш вопрос был против кеширования, но перечитал его. видите, я зря потратил там хороший ответ: P

Короче говоря, браузеры обычно очень агрессивно кэшируют "простые" ресурсы, поэтому вам не стоит беспокоиться об этом, но если вы действительно хотите что-то с этим сделать, вам потребуется доступ к межсетевому экрану / диспетчеру трафика / IIS по причинам, указанным выше (ASP.NET по умолчанию не получит шанса.)

Однако ... Вы не можете полностью принудительно кэшировать, да и не должны. Решение о том, что кэшируется, а что нет, по праву принимает конечный пользователь, все, что вы можете сделать, - это настоятельно запросить.

Вы не можете полностью принудительно кэшировать, да и не должны. Решение о том, что кэшируется, а что нет, по праву принимает конечный пользователь, все, что вы можете сделать, - это настоятельно запросить.

Вы не можете полностью принудительно кэшировать, да и не должны. Решение о том, что кэшируется, а что нет, по праву принимает конечный пользователь, все, что вы можете сделать, - это настоятельно запросить.

2
ответ дан 1 December 2019 в 23:15
поделиться

Лучше всего установить заголовок Expires в IIS для папок, содержимое которых нужно кэшировать. Это укажет большинству современных браузеров и прокси-серверов кэшировать этот статический контент. В IIS 6:

  1. Щелкните правой кнопкой мыши папку (например, CSS или JS), которую вы хотите кэшировать в браузере.
  2. Щелкните свойства
  3. Перейдите на вкладку заголовков HTTP.
  4. Установите флажок «Срок действия разрешенного содержимого»
  5. Установите длительный период для истечения срока, например «Срок действия истекает через 90 дней»

Блог разработчиков Yahoo рассказывает об этой технике .

3
ответ дан 1 December 2019 в 23:15
поделиться

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

Вы также можете использовать ETags, но, насколько я понимаю, в некоторых В некоторых случаях это не сработает, если у вас есть несколько веб-серверов IIS и apache, на которых размещены ваши изображения , (или если вы планируете переключиться в будущем).

Вы можете просто убедиться, что дата файла указана. новее, и пусть сервер сделает это за вас, но вы должны убедиться, что сервер настроен правильно.

2
ответ дан 1 December 2019 в 23:15
поделиться
Другие вопросы по тегам:

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