javascript 변수에 ajax에서 반환 된 일부 데이터를 저장했습니다. 한 시간 후에이 변수를 무효화하고 싶습니다.자바 스크립트 변수가 만료 되었습니까?
이 문제를 처리 할 수있는 몇 가지 setTimeout 함수를 작성할 수는 있지만 최적이 아니라고 생각합니다.
또 다른 방법은 쿠키를 저장하고 만료를 설정하는 것이지만 오버 헤드가 필요하지 않을 수 있습니다.
이 상황을 좀 더 우아하게 처리 할 수있는 다른 방법이 있습니까?
javascript 변수에 ajax에서 반환 된 일부 데이터를 저장했습니다. 한 시간 후에이 변수를 무효화하고 싶습니다.자바 스크립트 변수가 만료 되었습니까?
이 문제를 처리 할 수있는 몇 가지 setTimeout 함수를 작성할 수는 있지만 최적이 아니라고 생각합니다.
또 다른 방법은 쿠키를 저장하고 만료를 설정하는 것이지만 오버 헤드가 필요하지 않을 수 있습니다.
이 상황을 좀 더 우아하게 처리 할 수있는 다른 방법이 있습니까?
실제 변수가 실제로는 그 페이지가 열려있는 상태로 존재한다고 가정하면 모든 캐시가 수행하는 작업 만 수행하십시오. 타임 스탬프를 저장하고 확인하십시오.
var cache = { timestamp : null, data : null };
function setData(data) {
cache.data = data;
cache.timestamp = new Date;
}
function getData(maxAge) {
if (/* compare cache.timestamp to now - maxAge */) {
return null;
}
return cache.data;
}
값이 만료되는 시점을 나타내는 변수를 유지하십시오.
var foo = "bar";
var foo_expires_on = new Date(new Date().getTime() + 60 * 60 * 5); // +5 hours
deceze의 대답은보다 공식적인 (모나드) 구현입니다.
그러나 실제 캐시는 얼마 동안 메모리를 해제합니까? – Bergi
데이터가 만료되었을 때 데이터를 설정 해제하십시오. 캐시는 데이터가 만료 될 때 반드시 제거하지는 않지만 그렇게 할 수는 있습니다. 이를 위해서는 정기적 인 가비지 수집기가 필요합니다. – deceze