12

XMLHttpRequest (jQuery を使用) を使用して、複数のファイルのアップロードの進行状況を取得しています。XMLHttpRequest オブジェクトに「progress」イベント リスナーを追加することevent.loadedで、event.total. これらの変数は、結合されたすべてのファイルのロードされたバイト数と合計バイト数を示します。

私がやりたいのは、個々のファイルの進行状況を取得することですが、XMLHttpRequest では情報を取得できないことがわかります。本当?

これは必要だとは思いませんが、私のコードは次のとおりです。

var xhr = $.ajaxSettings.xhr();
if (xhr.upload) {
    xhr.upload.addEventListener('progress', function(event) {
        var percent = 0;
        var position = event.loaded || event.position;
        var total = event.total;
        if (event.lengthComputable) {
            percent = Math.ceil(position / total * 100);
        }
        updateProgressBar(percent);
    }, false);
}
return xhr;

XMLHttpRequest でこれを達成できれば、それは素晴らしいことです。これに関する情報をいただければ幸いです。

4

2 に答える 2

1

これは私が使用するものです、

$.ajax({
    xhr: function () {
        myXhr = $.ajaxSettings.xhr();
        myXhr.addEventListener('progress', function (e) { }, false);
        if (myXhr.upload) {
            myXhr.upload.onprogress = function (e) {
                var completed = 0;
                if (e.lengthComputable) {
                    var done = e.position || e.loaded,
                        total = e.totalSize || e.total;
                    completed = Math.round((done / total * 1000) / 10);
                }
                console.log(completed); // Displays the completed percentage
            }
        }
        return myXhr;
    }
});
于 2014-10-03T15:37:16.033 に答える