이것은 까다 롭습니다. cache-control 지시어를 사용하여 사용자가 항상 파일의 새로운 사본을 얻도록 할 수는 있지만 사용자 질문이 아닙니다.
JavaScript 또는 DOM에는 문서 작성시기에 대한 정보가 없으며 사용자의 시계가 서버 시간과 동기화되는 것을 신뢰할 수 없습니다. 그러나이 작업을 2 단계로 진행하는 데 신경 쓸 필요가 없다면 페이지에 GMT 타임 스탬프를 포함 시키면됩니다. 그런 다음 동일한 서버에 간단한 AJAX 요청을 할 수 있습니다 (빈 텍스트 파일 일 수도 있고 POST 또는 GET이 아닌 HTTP HEAD 요청 일 수도 있습니다). 클라이언트가 XHR을 통해 이것을 성공적으로로드하면 페이지에 포함 된 타임 스탬프와 비교할 수있는 "Date"헤더를 수신해야합니다. 이 코드를 페이지에 가능한 한 많이 올려 놓으면 페이지를 새로 방문하는 사용자가 서버 시간에서 2 ~ 2 초 정도 떨어져있을 것입니다. 그러나 뒤로 버튼을 치는 누군가는 꽤 싱크가 맞지 않을 것입니다.
사이트에 jQuery를 사용하는 경우, 코드는 다음과 같이 보일 것이다 이렇게하려면 : 내가 거기있을 것입니다 알고 있기 때문에이 예에서
var intTimeStampAtCreation = 1279871757843; // This value is generated when building the page
var onXHRLoad = function(xhr) {
var dtCurrentDateTime = new Date(xhr.getResponseHeader('Date'));
var intCurrentTimestamp = dtCurrentDateTime.getTime();
if (Math.abs(intCurrentTimestamp - intTimeStampAtCreation) > 10000) { // 10 seconds
alert("Expired");
}
};
$.ajax({type:"HEAD",url:"/",complete:onXHRLoad});
, 나는 (기본 페이지를로드하고 있습니다를), 그러나 당신은 그것을 작고 역동적이지 않은 것으로 지적해야합니다.