是否可以在web worker中使用filereader api来加载图像,即用于预览/缩略图,从而防止主ui线程阻塞。
类似于this,但将cpu密集型部分(主要是读取文件内容和缩放图像)包装在web worker中。
发布于 2012-02-15 12:14:47
对于worker,无法访问页面的DOM级别,因此无法创建image对象或画布(用于缩放部分),因此答案是否定的,因为您想要操作图像。
虽然可以通过ajax或FileReaderSync在web worker上加载图像文件,将其转换为base64数据url字符串并将其发送回主脚本,但无法通过操作图像来创建缩略图。(除非你知道png/jpg/bmp格式的文件规范,并且想要硬编码一个直接在二进制字符串上工作的缩放函数,否则看起来不是很好,对吧?)
发布于 2012-02-15 19:29:44
主线程被称为UI线程,因为与UI直接相关的所有事情都必须在那里发生。您不能在Web Worker中操作DOM,但可以在Web Worker中操作图像文件的二进制文件。在图像处理之后,您必须将数据传输到主线程,并让它将其附加到DOM。然后,浏览器将在主线程中呈现此图像。
发布于 2014-01-12 20:28:55
这是可能的,如果你可以的话。
服务器上的
< Uint8Array >F219
阅读:Sending Arraybuffer,Transferable Objects
写下整个脚本将超出范围。
https://stackoverflow.com/questions/9287202
复制相似问题