2014-11-12 2 views
0

아주 간단한 질문입니다. 파일이 클라이언트의 컴퓨터에 캐시 된 시간이 필요합니다.어쨌든 내가 캐시 된 파일의 시간을 얻을 수 있습니까?

캐시 된 파일 시간 이후에 수정 된 경우 서버에서 페이지를 다시로드하려고합니다.

가능합니까? 나는 이것에 관해 전혀 몰라. 어떤 도움을 주시면 감사하겠습니다.

<body data-generated="<?php echo time();?>"> 

그런 다음 아약스 요청을 통해 서버 업데이트 시간에 대해이를 확인 :

+2

두 가지 공통적 인 방법은'Cache-Con ('script type = 'text/javascript'src = 'my/file.js? 100232'>)가 포함 된 클라이언트 측 파일 (js 또는 css 파일과 같은)을 포함 할 수 있습니다. 두 가지 방법 모두 클라이언트가 파일을 다시로드하도록 할 수는 있지만 질문에 대답 할 수는 있습니다. 아니요, 캐시 된 파일의 수명을 결정할 수는 없습니다 _ 클라이언트에게 보내는 정보의 정확성을 결정하기 때문에 –

+0

가능한 복제본 [클라이언트가 JavaScript 파일을 새로 고칠 수있는 방법은 무엇입니까?] (http://stackoverflow.com/questions/32414/how-can-i-force-clients-to-refresh-javascript-files) –

답변

1

당신은 어딘가에 HTML에 타임 스탬프를 포함 할 수

//jquery for berevity 

$.get('invalidate_client_cache.php?time='+ $('body').data('generated'), function(data){ 
    if(data.invalidate){ 
     location.reload(true); 
    } 
} 

내가 당신에게 PHP는 implenentation을 떠날 것이다, 내가 알지 못하는 한 요구 사항은 다음과 같다 :

$clientCacheTime = isset($_GET['time'])? $_GET['time'] : null; 
$data=[]; 
$data['invalidate'] = reloadRequired($clientCacheTime); 
header('Content-Type: application/json'); 
echo json_encode($data); 
+0

내가 말하는 좋은 생각, 이것들을 시험해 보도록하겠습니다. 빠른 응답 주셔서 감사합니다. –

관련 문제