IE история - PullRequest
       28

IE история

1 голос
/ 12 мая 2009

Я генерирую некоторые PNG-диаграммы и файлы Excel, используя базу данных MySQL. Я отображаю диаграммы как изображения в своем веб-приложении, но время от времени пользователи IE не имеют доступа к последней версии файлов, потому что IE продолжает показывать им предыдущие загруженные данные (диаграммы и файлы Excel)

Как это предотвратить? На стороне клиента, что можно сделать?

Мое веб-приложение написано на PHP. Какой подход я должен использовать, чтобы заставить IE загружать новые файлы?

Ответы [ 3 ]

5 голосов
/ 12 мая 2009

Другой подход, который вы можете использовать, - добавить уникальную строку запроса к изображениям, которые вы показываете. В обработчике изображений вы можете игнорировать данные, которые фактически передаются в строке запроса, но IE будет обрабатывать URL-адреса с различными строками запроса как уникальные и, следовательно, потребовать загрузки каждого заново без использования кэшированной версии.

Например, изменение:

<img src="mychart.png>

до:

<img src="mychart.png?timestamp=0512200911090000">

поможет вам избежать кеширования IE.

2 голосов
/ 12 мая 2009

HTML-мета может работать, но использование PHP-заголовков более эффективно и корректно ( смотрите здесь ). В статье также рассматривается кэширование загружаемых / не html файлов.

Кэширование может быть выполнено одним из следующих способов в PHP (используйте заголовки до потоковой передачи содержимого изображения):

<?php 
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
    header('Pragma: no-cache'); 
?>

или

 <?php 
     header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
     header('Cache-Control: no-store, no-cache, must-revalidate'); 
     header('Cache-Control: post-check=0, pre-check=0', FALSE); 
     header('Pragma: no-cache'); 
 ?>
2 голосов
/ 12 мая 2009
<HTML><HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</HEAD><BODY>
</BODY>
</HTML>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...