programing

XmlHttpRequest on progress 간격

telebox 2023. 3. 8. 21:02
반응형

XmlHttpRequest on progress 간격

XmlHttpRequests를 사용하여 이미지를 서버에 업로드하고 있는데 업로드 진행 상황을 사용자에게 보여주고 싶습니다.

안타깝게도 진행 중인 이벤트핸들러에 대한 콜 간격이 너무 。일반적으로 진행 중은 500k 이미지에 대해 한 두 번만 호출됩니다.

코드는 다음과 같습니다.

/* This function is not called often enough */
function progress(e){
    console.log('Uploading: ' + Math.round((e.loaded / e.total) * 100) + ' %');
}

var xhr = new XMLHttpRequest();
xhr.upload.addEventListener('progress', progress, false);
xhr.send(data);

이 동작은 변경할 수 있습니까, 아니면 브라우저 구현 중 어딘가에서 하드코드 되어 있습니까?

W3에서는 XMLHttpRequest 레벨2 문서에 다음 가이드라인을 기재하고 있습니다.브라우저에 따라 다양한 수준의 적합성이 예상되고 있습니다.

업로드:

요청 엔티티 본문이 업로드되고 업로드 완료 플래그가 false인 경우 XMLHttpRequestUpload 객체에 progress라는 이름의 진행 이벤트를 50ms마다 또는 전송 빈도가 낮은 바이트마다 실행하도록 큐잉합니다.- W3 XMLHtpRequest Level 2 (강조 표시)

다운로드:

다운로드 진행 중에 진척 통지가 이루어진다고 하면 50밀리초마다 또는 수신된 바이트마다 진척이라는 이름의 작업을 큐잉합니다.- W3 XMLHttpRequest Level 2 (강조 표시)

이 기능을 커스터마이즈할 수 있는 api가 없습니다.

또한 로컬 디버깅HTTP 프록시(Charles 등)는 프로그레스이벤트 기동 간격에 영향을 주는 경향이 있으므로 주의해 주십시오.

언급URL : https://stackoverflow.com/questions/5495625/xmlhttprequest-onprogress-interval

반응형