У моего сайта была проблема в том, что некоторые браузеры (особенно опера и гекконы) были «чрезмерным кешированием» (кэширование слишком много для моего вкуса).
Я только что добавил следующий фрагмент PHP, чтобы, надеюсь, отключить кеширование во всех браузерах:
<?php header("Expires: Tue, 01 Jan 2000 00:00:00 GMT"); header("Last-Modified: " . gmdate("D, d MYH:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); ?>
Вопрос: Как бы вы протестировали это, чтобы убедиться, что он действительно работает?
Дополнения, примечания: мне нужен тупо простой тест; мой уровень навыков довольно низкий. Я не могу выполнить переполнение кэша (изменения URL), потому что это сайт на одну страницу.
Получите текущее время () и сохраните его в сеансе PHP. Используйте var_dump () для печати массива $ _SESSION, а также для печати текущего времени (). Несколько раз нажмите «обновить». Ожидайте, что массив сеансов останется стабильным и текущее время для изменения. Если оба остаются стабильными, вывод сценария кэшируется.
Пример здесь: http://www.laprbass.com/RAY_cache_test.php
<?php // RAY_cache_test.php error_reporting(E_ALL); date_default_timezone_set('America/Chicago'); // SEND HEADERS header("Expires: Tue, 01 Jan 2000 00:00:00 GMT"); header("Last-Modified: " . gmdate("D, d MYH:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); // START SESSION session_start(); // GET CURRENT TIME $now = date('c'); // IF NO TIME IN SESSION YET, STORE ONE if (!isset($_SESSION['myTest'])) $_SESSION['myTest'] = $now; // SHOW THE SESSION AND THE CURRENT TIME echo 'SESSION TIME: ' . $_SESSION['myTest']; echo '<br/>'; echo 'CURRENT TIME: ' . $now;
Большинство расширений браузера, таких как инструменты разработчика для Chrome или Firebug для Firefox, позволяют проверять заголовки запросов и ответов, которые содержат всю информацию, необходимую для кэширования.
Кроме того, если вы разрабатываете Windows, я могу порекомендовать использовать Fiddler , отличный прокси-сервер для отладки, который помимо глубокого анализа трафика вашего приложения может объяснить вам, что происходит с кешированием простым простым английским языком.
Вы должны увидеть доступ к страницам в своем журнале веб-сервера. Сравните шаблон доступа, когда страницы запрашиваются повторно и без дополнительных заголовков.