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
'programing' 카테고리의 다른 글
어떻게 Mongodb에서 마지막 N개의 레코드를 얻을 수 있지? (0) | 2023.03.08 |
---|---|
어레이를 FormData에 추가하고 AJAX를 통해 전송 (0) | 2023.03.08 |
js의 이상한 JSON 해석 동작 "예기치 않은 토큰:" (0) | 2023.03.08 |
angularjs로 줄 바꿈 유지 (0) | 2023.03.08 |
ui-select angular에서 선택한 옵션 지우기 (0) | 2023.03.08 |