3

在尝试在 JavaScrupt 中编写上传库时,我在 IE 11 上遇到了一个奇怪的问题。

使用 XMLHttpRequest 2,您可以上传文件并获取进度。但是,如果您尝试在 webworker 中这样做,您将不会从 IE 11 中获得任何进展(我只尝试了这个版本)。使用相同的代码会出现错误。

这里有一个例子:

worker.js

self.addEventListener("message", function(e) {

    var file = e.data;

    var xhr = new XMLHttpRequest();
    if (xhr.upload)
       xhr.upload.onprogress = function(event){
          // here we get the progression through event.loaded
    };

    xhr.open('POST', '/upload.php', true);
    xhr.send(file);

});

main.js

var uploadworker = new Worker('worker.js');
uploadworker.postMessage( file );

如果您直接使用此代码,它将适用于任何浏览器。如果你在 webworker 中使用它,它在 IE11 中将不起作用。如果事实上你会在该行上得到一个“无效参数”:if (xhr.upload) 因为当在 webworker 中使用 XMLHttpRequest 时,IE11 似乎没有设置这个属性。

有人知道为什么会这样吗?

4

1 回答 1

1

有人知道为什么会这样吗?

那是因为它是一个错误,在此期间已修复。

于 2017-06-18T21:46:12.903 回答