我正在尝试使用面向对象的代码来处理 AJAX 上传。当我运行代码时,它会看到文件,创建 XMLHttpRequest 对象,但我似乎无法触发进度事件。我的代码的完整来源可以在这里找到: //pastebin.com/89QawbS6
这是一个片段:
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", MyObj.trackProgress, false);
xhr.open("POST", url, true);
...
然后在同一个对象中,使用不同的方法:
trackProgress: function (event) {
console.log(event);
// stuff that should calculate percent
}
但是那个 console.log(event) 永远不会触发。
请注意:我知道 jQuery 很棒,并且有十几个很棒的上传插件可以用来代替。我这样做不是为了上课或做作业,我只是想自己更好地理解这个过程。所以提供一个 jQuery 插件作为答案并不是我想要的。我试图让自己减少对 jQuery 的依赖。