3

私は聞いていますxhr.onprogress

request.onprogress = function(e){
    return conf.progress ? conf.progress(e) : null;
};

どこconf.progressですか

function(e){
    var position = e.position || e.loaded;
    var total = e.totalSize || e.total;
    var percent = ((e.loaded/e.total)*100)+"";
    console.log(percent);
    console.log(position, total);
    console.log(e);
}

percentコンソールのような間違った値を生成し2.789069431137492e-11、これがconsole.log(e)出力されます

XMLHttpRequestProgressEvent
    bubbles: false
    cancelBubble: false
    cancelable: true
    clipboardData: undefined
    currentTarget: undefined
    defaultPrevented: false
    eventPhase: 2
    lengthComputable: false
    loaded: 4982035
    position: 4982035
    returnValue: true
    srcElement: undefined
    target: undefined
    timeStamp: 1323097256269
    total: 18446744073709552000
    totalSize: 18446744073709552000
    type: "progress"
    __proto__: XMLHttpRequestProgressEvent

ドキュメントが完全にロードされた後でも、ドキュメントが完全にロードされたときと同じe.totalSize: 18446744073709552000大きさになる理由e.loaded: 4982035totalSizeloaded

4

2 に答える 2

0

実際、WebKit ベースのブラウザーを使用している場合、マイナスをチェックせずに -1 の長さがキャストされている WebKit のバグである可能性が非常に高いです: https://bugs.webkit.org/show_bug.cgi? id=36156

于 2011-12-28T11:42:40.063 に答える