0
當發送帶有async = false的XMLHttpRequest時,xhr.upload.onprogress事件永遠不會被執行文件上傳。XMLHttpRequest onprogress不會觸發async = false
來源:
var form = new FormData();
form.append("name", files[i].name);
form.append("size", files[i].size);
form.append("type", files[i].type);
form.append("image", files[i]);
var xhr = new XMLHttpRequest();
xhr.upload.onprogress = function(evt){
alert("Progress event fired!");
if (evt.lengthComputable)
{
var percentComplete = (evt.loaded/evt.total)*100;
console.log(percentComplete);
}
};
xhr.onload = function() {
console.log(files[i].name + " uploaded!");
};
xhr.open("post", "/images/upload", false);
xhr.send(form);
我已經在Firefox和Chrome瀏覽器測試這一點。
我不知道如果我錯過了一些文檔,但找不到任何指示xhr.upload.onprogress事件在async = false時未被觸發的情況。
如果我更改請求以async = true運行,它會被解僱。
在[規範第4.5.6節](https://xhr.spec.whatwg.org/)中,您可以閱讀規範中關於進度事件的內容。 – jfriend00 2014-10-19 10:14:55
有關同步HTTP請求的第一條規則:您不使用它們。永遠。 *自從*。 – Tomalak 2014-10-19 11:26:28