如何在工人中预加载图像?

时间:2014-07-27 13:23:13

标签: javascript html5 multithreading worker

我尝试在工作人员中预加载图像:

var img = new Image();

这将出错:未捕获的ReferenceError:图像未定义。

还有其他方法可以在工作人员中预加载图像吗? XMLHttpRequest可以做到吗?

如果是这样,当我在worker中使用XMLHttpRequest来预加载图像时,我的主要ui线程会缓存那些图像吗?

我应该在我的主ui线程中使用Image或XMLHttpRequest吗?

1 个答案:

答案 0 :(得分:1)

使用Web Workers,您无法以与在页面上下文中运行的JavaScript相同的方式访问DOM。 Web工作者在他们自己的环境中运行,但这并不意味着您无法预先加载图像,您只需要以不同的方式执行。例如:

var x = new XMLHttpRequest();
x.responseType = 'blob';
x.onload = function () {
    //Do something
}
x.open('GET', url, true);
x.send();