2012-12-17 8 views
1

내 사이트는 특정 브라우저 (특히 오페라와 도마뱀)가 "캐싱 (over-caching)"(내 취향에 너무 많이 캐싱)이라는 점에서 문제가있었습니다.테스트 PHP가 캐싱을 사용하지 않음

난 그냥 잘하면 모든 브라우저에서 캐싱을 사용하지 않도록 다음과 같은 PHP 스 니펫 (snippet)을 추가했습니다 :

<?php 
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H: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 변경)를 할 수 없습니다.

+0

대신 자산에 중대한 변화가있을 때 URL을 변경하는 캐시 무효화를 고려해 보겠습니다. 이렇게 캐싱을 완전히 비활성화하면 느린 사이트를 의미하게됩니다. – ceejayoz

답변

2

현재 시간()을 가져 와서 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 M Y H: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; 
+0

PHP로 쓸모가 없습니다. 위의 스 니펫을 수정해야합니다. – user1691389

+0

이전에 답변을 편집하여 서버에 복사하여 설치할 수있는 코드 샘플을 추가하여 테스트 할 수 있습니다. HTH, ~ Ray –

+0

'session_start()'를 실행하면 - php는 캐싱을 막기 위해 필요한 모든 헤더를 이미 보냅니다. 응답 헤더를 확인하십시오. 따라서 모든'header()'줄은 중복되어 많은 의미가 없습니다. – zerkms

0

파이어 폭스 크롬이나 파이어 버그에 대한 개발자 도구와 같은 브라우저 확장의 대부분은 당신이 캐싱에 대해 필요한 모든 정보를 포함 요청 및 응답 헤더를 검사 할 수 있습니다.

는 Windows에서 개발하고 또한 경우에 나는 Fiddler, 옆으로 응용 프로그램의 깊은 트래픽 분석을 제공하는 일반 간단한 영어 캐싱 무슨 일이 일어나고 있는지 당신에게 설명 할 수있는 훌륭한 디버깅 프록시를 사용하는 것이 좋습니다 수 있습니다.

0

웹 서버 로그에 페이지 액세스가 표시되어야합니다. 추가 헤더가 있거나없는 페이지를 다시 요청할 때 액세스 패턴을 비교하십시오.

관련 문제