小编Rob*_*unn的帖子

将文件对象克隆到Web Worker

我正在尝试与Web Workers一起提高文件上传性能。我正在处理这篇文章中有关上传大文件的示例。我有一个(某种程度上)更完整的代码示例,该示例可在Chrome(36.0.1985.143)和Safari(7.0.3(9537.75.14))中工作,而在Firefox(31.0)中则无法工作。我没有共享的服务器代码,但是客户端代码足以查看浏览器是否在推动切片。根据MDN,File和FileList都是可克隆的对象,所以这是Firefox中的错误吗?

原始链接来自StackOverflow 上的这篇文章

在Firefox中,我遇到了一个错误:

(DataCloneError:无法克隆该对象。)

在这条线上:

worker.postMessage({
 'files' : files
});
Run Code Online (Sandbox Code Playgroud)

代码如下:

index.html

<html>
<head>

<script>


 var worker = new Worker('fileupload.js');
 worker.onmessage = function(e) {
  alert(e.data);
 }

worker.onerror = werror;

function werror(e) {
  console.log('ERROR: Line ', e.lineno, ' in ', e.filename, ': ', e.message);
 }
function handleFileSelect(evt) {
 evt.stopPropagation();
 evt.preventDefault();
    var files;
    if(evt.dataTransfer === undefined ){
        files = document.getElementById('files').files;
    }else{
        files = evt.dataTransfer.files||evt.target.files;
    }
 // FileList object.

 worker.postMessage({
 'files' : files
 });
 //Sending …
Run Code Online (Sandbox Code Playgroud)

javascript html5

5
推荐指数
0
解决办法
1600
查看次数

标签 统计

html5 ×1

javascript ×1