1

我是 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();

你能告诉我为什么它不起作用吗?

4

1 回答 1

9

你的代码对我来说很好。您使用的是哪个浏览器,您在错误控制台中遇到了哪个错误?

如果您正在使用 Chrome 并且正在从本地文件系统进行测试(即您尚未将文件上传到 Web 服务器),那么您必须在启动浏览器时添加一个特殊标志。您必须启动 Chrome,chrome --allow-file-access-from-files它基本上允许您从本地文件系统上的脚本创建工作人员。但是,如果您将文件上传到网络服务器并使用这些文件进行测试 - 您将不需要此标志。

于 2013-02-19T09:39:09.590 回答