可以在没有单独的 JavaScript 文件的情况下使用 Web Workers 吗?
创建 Web Workers 的默认方法是将它们编写在单独的 JavaScript 文件中并调用它们如下:
<code class="js">new Worker('longrunning.js')</code>
但是,对于那些使用闭包编译器并希望避免将工作程序分布在不同文件中的人来说,还有另一种解决方案:
带有 BLOB 的内联工作程序
HTTP5Rocks 为使用 Blob() 函数的内联内联工作人员提供了一种创新方法。此技术允许您动态生成工作脚本或创建独立的页面,而无需外部工作文件。
<code class="js">var blob = new Blob([ document.querySelector('#worker1').textContent ], { type: "text/javascript" }); var worker = new Worker(window.URL.createObjectURL(blob));</code>
在此示例中,id=“worker1”的 HTML 脚本元素的 textContent 属性" 被检索并用于构造具有适当 MIME 类型的 Blob 对象。然后,使用 Blob 的 createObjectURL() 方法创建的 URL 创建一个新的工作线程。此 URL 对于 Blob 来说是唯一的,允许在没有单独的 JavaScript 文件的情况下加载和执行工作器。
以上是可以在没有单独的 JavaScript 文件的情况下实现 Web Workers 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!