Safari, похоже, игнорирует настройки кэша, когда пользователь нажимает кнопку мыши или клавиатуры

У меня есть страница, на которой после нажатия кнопки она заменяется вращателем Ajax, пока пользователь ожидает загрузки следующей страницы.

Я контролирую (или пытаюсь контролировать) кэширование с помощью. Htaccess. Если пользователь нажимает назад (кнопка браузера, кнопка мыши, alt + left, backspace), ему необходимо перезагрузить страницу из кэша. IE 6-8 и Chrome были в порядке с этим. Firefox некоторое время не работал и недавно начал работать, но, похоже, проблема остается в Safari. Это кажется немного странным, потому что я ожидал, что Safari и Chrome будут вести себя одинаково.

Это мой файл .htaccess:

# Add Proper MIME-Type for Favicon
AddType image/x-icon .ico

<IfModule mod_expires.c>
    ExpiresActive On
#   ExpiresDefault A2630000
    ExpiresByType image/x-icon A2630000
    ExpiresByType image/gif A2630000
    ExpiresByType image/jpeg A2630000
    ExpiresByType image/png A2630000
    ExpiresByType application/x-javascript M2630000
    ExpiresByType application/javascript M2630000
    ExpiresByType text/css M2630000
</IfModule>

<IfModule mod_headers.c>
    Header set Cache-Control "public"
    <FilesMatch "\.php$">
        Header set Cache-Control "no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0"
    </FilesMatch>
</IfModule>

SetOutputFilter DEFLATE

AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript

Я пробовал его с открытой строкой Cache-Control и без нее.

также попытался добавить:

AddType application/x-httpd-php .php

с:

ExpiresByType application/x-httpd-php A0

Безрезультатно.

Я что-то упускаю из виду?

Редактировать: Я не думаю, что это как-то связано с настройками кэша.

попытался добавить это к самому PHP:

#safari test
if (strstr($_SERVER['HTTP_USER_AGENT'],'Safari')){
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
}

И даже без этих строк я вижу в ресурсах «inspect element»>, что получаются правильные заголовки. Похоже, проблема в том, что Safari делает с ними в стремлении стать «самым быстрым браузером». Может показаться, что он явно игнорирует специфику разработчиков сайта - это звучит как оригинальное мышление IE в те времена, когда таблицы использовались для макетов.

5
задан bcmcfc 10 August 2010 в 09:04
поделиться