HTML 5 Web Worker示例在8.0.552.231中不起作用

时间:2011-01-05 01:51:35

标签: firefox html5 google-chrome safari web-worker

我在http://www.whatwg.org/specs/web-workers/current-work/

上关注此示例

page.html中

<!DOCTYPE HTML>
<html>
 <head>
  <title>Worker example: One-core computation</title>
 </head>
 <body>
  <p>The highest prime number discovered so far is: <output id="result"></output></p>
  <script>
   var worker = new Worker('worker.js');
   worker.onmessage = function (event) {
     document.getElementById('result').textContent = event.data;
   };
  </script>
 </body>
</html>

worker.js

var n = 1;
search: while (true) {
  n += 1;
  for (var i = 2; i <= Math.sqrt(n); i += 1)
    if (n % i == 0)
     continue search;
  // found a prime!
  postMessage(n);
}

此示例在Mac OSX上的firefox和Safari Version 5.0.2(6533.18.5)中运行良好,但在chrome中不起作用。当我调试它时,worker.js甚至没有列为其中一个来源。奇怪的是,同一网站上的示例页面链接在chrome中工作正常,这与我的本地代码相同。但是我的本地代码在chrome中不起作用。

当我尝试在这样的Javascript调试器中手动运行代码时

var w = new Worker('worker.js')

我收到错误说:

Error: SECURITY_ERR: DOM Exception 18

有没有其他人有这种经历?有人可以提出解决方案吗?

由于

2 个答案:

答案 0 :(得分:2)

您是在file:///协议中还是在http://上查看此文件?您必须为页面提供服务才能使安全性能够正确处理。

Uncaught Error: SECURITY_ERR: DOM Exception 18 when I try to set a cookie

答案 1 :(得分:0)

rxgx是现货,我经常看到这个错误。至于解决方案,要么购买一些廉价的共享主机进行开发,要么从自己的机器上运行Web服务器。对于Windows,请下载并安装Apache Foundation提供的Apache安装程序,并按照说明进行操作。对于Mac OS X,只需在“系统偏好设置”的“共享”部分中启用Web共享。对于Linux,请通过软件包管理器安装apache或lighttpd软件包。