XMLHttpRequest
object을 통해 이미지를로드하는 경우 bind to the progress
event을 입력하고 함수 인수 "이벤트"속성 "로드 됨"및 "합계"를 확인할 수 있습니다. 늘 그렇듯이 다양한 브라우저 간의 지원은 놀랄 수 있습니다. linked MDN article에서
:
var req = new XMLHttpRequest();
req.addEventListener("progress", onProgress, false);
req.open();
function onProgress(ev) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded/evt.total;
// ...
} else {
// Unable to compute progress information since the total size is unknown.
}
}
[업데이트] BERGI의 질문 @ 주석 당 당신이 완전히 당신이 새로운 이미지 요소를 추가 할 수 있습니다 다운로드 한 후에는 DOM에 이미지를 추가하려면 :
XHR을 통해 가져온 URL과 동일한 "src"속성 (브라우저 캐시가 중복 다운로드를 방지하기를 바랍니다).
"src"속성을 data URI of the Base64 encoded image content으로 설정하고 브라우저 캐시에 대해 걱정하지 마십시오.
var img = new Image(); // or document.createElement('img');
img.src = ... // URL from the above XHR request, or
img.src = 'data:image/png;base64,' + base64(xhrContent);
document.body.appendChild(img);
하지 신뢰성 확인. 모든 서버가 크기 헤더를 포함하는 것은 아니며 모든 서버가 RELIABLE 크기 헤더를 포함하지는 않습니다. 확인할 수있는 브라우저 수준의 매우 낮은 수준의 내부 상태가있을 수 있지만 표준 JS에서는 어디서나 작동하는지 확인할 수있는 "진행 상황"이 없습니다. –
이 기사는 http://blogs.adobe.com/webplatform/2012/01/13/html5-image-progress-events/ – maerics
에 관심있을 것입니다. XHR을 통해로드 할 수있는 도메인이 동일하고 진행 이벤트. – zzzzBov