Web Worker无法正常工作

时间:2013-02-19 09:18:29

标签: javascript html5 web-worker

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

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

1 个答案:

答案 0 :(得分:9)

您的代码适用于我。您使用的是哪种浏览器,以及您在错误控制台中遇到了哪些错误?

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