programing

업로드가 완료될 때까지 XHR 진행 이벤트가 발생하지 않습니까?

javajsp 2023. 9. 16. 08:40

업로드가 완료될 때까지 XHR 진행 이벤트가 발생하지 않습니까?

나는 PhoneGap 응용 프로그램에서 파일을 업로드하기 위해 다음 $.ajax 명령을 사용하고 있습니다.

function updateProgress( evt ) {
    if ( evt.lengthComputable ) {
        var percentComplete = evt.loaded / evt.total * 100;
        console.log( percentComplete + "%" );
    }
}

$.ajax({
    url: url,
    type: "POST",
    data: data,
    cache: false,
    dataType: "json",
    processData: false, 
    contentType: false, 
    success: successCallback,
    error: errorCallback,
    xhr: function() {
        var xhr = new window.XMLHttpRequest();
        xhr.addEventListener( "progress", updateProgress, false);
        return xhr;
    }
});

업로드가 잘 됩니다.그러나 업로드가 완료된 후 진행 이벤트는 한 번만 발생합니다.업로드 시 실제로 발생하지 않으므로 업로드 진행 상황이 표시되지 않습니다.업로드 중에 일시정지가 발생하면 100% 표시됩니다.

제가 뭘 잘못하고 있는지 아시겠어요?

업로딩progress이벤트가 발생합니다.xhr.upload, 그래서 듣는 사람을 거기에 붙이기 보다는.xhr. 이 외에도 있습니다.progress에 관한 사건들xhrobject(객체). 하지만 이것은 서버에서 돌아오는 응답을 위한 것입니다.

자세한 내용은 MDN 기사를 참조하십시오.

xhr.upload.addEventListener('progress', updateProgress, false)

(A 덕분입니다.Wolff와 OP에 대한 그의 논평.

언급URL : https://stackoverflow.com/questions/26680379/xhr-progress-event-not-firing-until-upload-completes