가능합니까? 이제 jquery의 도움으로 .php 파일에 연결하여 마지막으로 수정 한 시간을 확인하고 이전과 같지 않은 경우 메시지를 검색합니다. 자바 스크립트에서 가능하다면 많은 리소스를 절약 할 수 있습니다.자바 스크립트로 파일의 마지막 수정 시간을 찾을 수 있습니까?
감사합니다.
가능합니까? 이제 jquery의 도움으로 .php 파일에 연결하여 마지막으로 수정 한 시간을 확인하고 이전과 같지 않은 경우 메시지를 검색합니다. 자바 스크립트에서 가능하다면 많은 리소스를 절약 할 수 있습니다.자바 스크립트로 파일의 마지막 수정 시간을 찾을 수 있습니까?
감사합니다.
짧은 답변 :이 방법은 없습니다하지만 AJAX + 서버 측 스크립트 (귀하의 경우, jQuery를가 + PHP)
되는 클라이언트의 컴퓨터에서 실행됩니다 자바 스크립트 클라이언트 측 스크립트, , m 시간 확인을 원하는 파일이 서버에 있다면 AJAX와 서버 측 스크립트를 사용하는 것이 옳다. 다른 방법으로는 효과가 없습니다.
m-time을 확인하려는 파일이 클라이언트의 컴퓨터에있는 경우 운이 좋지 않습니다. Javascript는 의도적으로 클라이언트 파일에 액세스하지 못하도록 설계되었습니다. 그러나 클라이언트 컴퓨터에서는 이 인 쿠키에만 액세스 할 수 있습니다. 브라우저 (JavaScript가 아님)가 작업 환경에 쿠키를로드하기 때문입니다.
이것은 더 이상 사실이 아니며, HTML5의 일부인 새로운 FileReader API로 로컬 파일에 액세스 할 수있다. 당신은 당신을 위해 파일을 선택하는 사용자가 필요하지만, 당신은 단지 시스템 주위를 스니핑 시작할 수 없습니다. –
아, 그래. 코더가 그러한 파일의 메타 데이터를 검사한다는 것은 나에게 발생하지 않았습니다. – JellicleCat
HTTP ETag 헤더를 사용하여 페이지가 변경되었는지 확인할 수 있습니다. 첫 번째 응답에는 ETag가 있고 클라이언트는 다음 요청에이 응답을 사용합니다. 페이지가 수정되지 않은 경우 PHP 서버 측 코드에서 304를 보냅니다.
서버가 정확한 Last- 해당 파일의 헤더를 수정했습니다.
var getMTime = function(url, callback) {
var xhr = XMLHttpRequest();
xhr.open('HEAD', url, true); // use HEAD - we only need the headers
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var mtime = new Date(xhr.getResponseHeader('Last-Modified'));
if (mtime.toString() === 'Invalid Date') {
callback(); // dont want to return a bad date
} else {
callback(mtime);
}
}
}
xhr.send();
};
getMTime('url here', function(mtime) {
if (mtime) console.log('the mtime is:' + mtime.toISOString());
});
'var xhr = XMLHttpRequest();'가 크롬에서 나에게 실패 했으므로'$ .ajax'를 사용하여이 작업을 수행했다. 약간의 수정 만 필요로하는 유용한 대답을 +1하십시오. – Maslow
jQuery로 가능하면 일반 Javascript에서 가능합니다. jQuery로 수행 한 작업을 공유 할 수 있습니까? – Jonathan
그러나 클라이언트는 실제로 php 파일을받지 못합니다. 실제로는 해당 파일을 실행 한 출력을받습니다. 나는 클라이언트가 이것을 결정할 수 있다는 나의 의심을 가지고 있지만,이 질문을 관심과 함께 보게 될 것이다. –
@Jonathan : jQuery의 ajax를 사용하고 .php 파일을 사용합니다. –