Предотвратить кеширование по https без взлома IE
Некоторые из загрузок, которые мы имеем в нашем веб-приложении, создаются и не должны кэшироваться браузером.
При использовании HTTP:// мы можем предотвратить это с помощью заголовка: Cache-Control: no-cache
Однако этот разрыв IE:
http://support.microsoft.com/kb/2549423
http://support.microsoft.com/kb/812935
http://support.microsoft.com/kb/316431
Общее решение проблемы IE - не отправлять эти заголовки. Но удаление этих заголовков открывает возможность повторного кэширования этих ресурсов браузером (что нежелательно).
Существует ли чистый (желательно контент не осведомленный) способ предотвратить кэширование во всех распространенных браузерах, но не прервать загрузку для IE?
1 ответ
Если серверная часть вашего веб-приложения игнорирует дополнительные параметры запроса, как насчет изменения
http://mywebapplication/service?param=value
в
http://mywebapplication/service?param=value&garbage=889jsdakd8932hd
Т.е. на стороне клиента:
url = 'http://mywebapplication/service';
url += '?garbage=';
for (var i = 0; i < 20; i++)
url += Math.floor(10 * Math.random());
Это убедит браузер, что вы загружаете новый ресурс каждый раз.