2011-08-17 6 views
4

이미지에 .load 함수를 추가해야하지만 이미지가 이미 캐시 된 경우이 함수를 추가하지 않아도됩니다. 주로 .load 함수에서 로딩 표시기를 숨기고 이미지를 숨 깁니다.이미 이미지가 jQuery로 캐시되어 있는지 확인하십시오.

이미 이미지가 캐시 된 경우 그 중 아무 것도 필요하지 않습니다. 캐시에 있는지 확인하는 방법이 있습니까?

덕분에, 웨슬리

+1

걱정할 필요가 없습니다. 브라우저에 따라 이미지가 캐시 된 경우로드 핸들러가 실행되지 않거나 눈에 보이는 효과를 빠르게 렌더링 할 수 있습니다. – Mrchief

+0

가능한 복제본 [로드 후 : 이미지가 브라우저 캐시에 있는지 확인] (http://stackoverflow.com/questions/2446740/post-loading-check-if-an-image-is-in-the- 브라우저 캐시) – Mrchief

+0

다음을 참조하십시오 : http://stackoverflow.com/questions/3930952/javascript-preloading-images-check-whe-an-image-is-cached-loaded-to-prevent – Mrchief

답변

3

나는 약간의 질문을했지만 이전에 같은 문제를 해결하려고 노력해 왔으며, 다른 누군가가이 문제를 해결할 수있는 방법을 찾았을 때 감사합니다.

내 프리 로더 효과를 호출 한 window.setTimeout()과 200ms 지연을 사용했으며,로드되는 이미지의 .load() 이벤트에서 시간 제한을 지우는 것이 처음이므로로드가 빠른 - 효과가 표시되지 않지만 이미지로드가 200ms보다 오래 걸리면 프리 로더가 표시됩니다.

var imgTmr; 

imgTmr = window.setTimeout(function() {showLoading('zoomImage');}, 200); 

$("#zoomImage").load(function() { 
    window.clearTimeout(imgTmr); 
    hideLoading(); 
} 

$("#zoomImage").attr("src", "myLargeImage.jpg"); 

// The showLoading() and hideLoading() functions just display a wait graphic 
// the image being loaded in this instance has the id of zoomImage 
1

일반적으로 그냥 장소에서로드 이벤트를 둡니다. 이미지가 캐싱 된 경우에도 컴퓨터에서 이미지를로드하는 데 수 밀리 초 (크기 및 컴퓨터 처리 속도에 따라 다름)가 소요됩니다. 적재는 여전히 동일한 출처에서 발생하지 않습니다. 따라서 캐시 된 경우 로딩 이벤트를 묶어야합니다.

+0

사실 갤러리에서는로드 된 이미지를 표시하기 위해 800 밀리 초의 페이드 인 효과를 사용합니다. 비록 내가 명백한 이유로 캐시 된 이미지에 이것을 원하지는 않지만. – Wesley

관련 문제