Если вы используете MasterPage для своего сайта, вы можете рассмотреть возможность добавления следующего заголовка ответа к своему событию Page_Load:
protected void Page_Load(object sender, EventArgs e)
{
Response.AddHeader("Cache-Control", "no-cache, no-store, max-age=0, must-revalidate");
}
Поскольку ваши файлы .js не будут использовать MasterPage, браузер должен сохранить ссылку в свой кэш.
Пример выше, который я использую, и он хорошо работает под Firefox3, IE7 и Chrome7. Обратите внимание, что приведенный выше заголовок ответа - это единственное, что я добавил для управления кэшем, и он выполняет свою работу. Однако я часто вижу заголовки ответов Pragma
и Expires
на других сайтах.
Например, вот заголовки ответа, которые используются в Gmail:
Content-Type: text / html; кодировка = UTF-8
Cache-Control: без кеша, без хранилища, max-age = 0, обязательно повторная проверка
Прагма: без кеша
Истекает: пт, 01 января 1990 00:00:00 по Гринвичу
Дата: вторник, 02 ноября 2010 г. 16:38:15 GMT
x-dns-prefetch-control: off
Контент-кодировка: gzip
Передача-кодировка: чанки
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-защита: 1; Режим = блок
Сервер: GSEServer: GSE
Я не уверен, используются ли они для старых браузеров и / или других новых браузеров.
Я предпочитаю использовать минимальный объем кода для решения проблемы, и у меня никогда (пока) не было случая, когда отмеченного сверху Response.AddHeader
было недостаточно.