web worker基本的用法如下:
var worker = new worker(“background.js”); // background.js文件是事先准备好的,里面的javascript文件运行在后台,一般为重量级或耗时的运算。那么假设开发者需要动态的执行一系列的javascript程序该怎么办呢?
下面介绍一下web worker的高级用法,如何在不事先创建js文件的前提下,动态的指定javascript程序在worker中运行?
我们可以创建一个blob对象,并把javascript文本赋值给blob对象,然后通过window.url.creatobjecturl方法生成一个url,最后根据该url创建worker对象,那么刚才的javascript文本就运行在worker线程中。这样就完成了把任务动态的分配给worker线程去执行,而不需要事先创建一个javascript文件。
实例代码如下:
<html> <body> <script id="worker" type="javascript/worker"> self.postmessage("message from web worker."); </script> <script> var worker_blob = new blob([document.getelementbyid("worker").textcontent]); var worker = new worker(window.url.createobjecturl(worker_blob)); worker.onmessage = function(event) { console.log("received event: " + event.data); }; </script> </body> </html>
如对本文有疑问, 点击进行留言回复!!
web前端基础之HTML5语义化新标签学习笔记(8)学会用语义化标签
网友评论