我是HTML5的新手。我最近浏览了HTML5的基础知识,但当我使用HTML5编写中级编码时,我想出了一个名为“HTML5 Web Workers”的东西。我用它编写了一个简单的程序,但它没有用。
我的HTML5代码:
<html>
<head>
<title>HTML5 - Web Workers</title>
</head>
<body>
<p>Count : <output id="result"></output></p>
<button onclick="startWorker()">Start count</button>
<button onclick="endWorker()">End count</button>
<script>
var w; //the variable of object for web worker
function startWorker() {
if(typeof(Worker)!="undefined") //checking if browser supports web worker
{
if(typeof(w)=="undefined")
{
w = new Worker("counter.js");
}
w.onmessage = function(e)
{
document.getElementById('result').innerHTML = e.data;
};
}
else
{
document.getElementById('result').innerHTML = "Your browser doesnot support HTML5 Web Worker! :)"; // or display the message that web worker is not supported!
}
}
function endWorker() {
w.terminate();
}
</script>
</body>
</html>
我的网络工作者文件:
var i=0;
function timedCount() {
i=i+1;
postMessage(i);
setTimeout("timedCount()", 500);
}
timedCount();
你能告诉我为什么它不起作用吗?
答案 0 :(得分:9)
您的代码适用于我。您使用的是哪种浏览器,以及您在错误控制台中遇到了哪些错误?
如果您使用Chrome并从本地文件系统进行测试(即您尚未将文件上传到Web服务器),则必须在启动浏览器时添加特殊标记。您必须使用chrome --allow-file-access-from-files
启动Chrome,这基本上允许您从本地文件系统上的脚本创建工作程序。但是,如果您将文件上传到网络服务器并使用这些文件进行测试 - 您将不需要此标记。