2

私はこの例に従っています: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バージョン5.0.2(6533.18.5)で正常に機能しますが、Chromeでは機能しません。デバッグすると、worker.jsがソースの1つとしてリストされていません。奇妙なことに、同じWebサイトのサンプルページリンクは、私のローカルコードと同じコードであるchromeで正常に機能します。しかし、私のローカルコードはChromeでは機能しません。

このようなJavascriptデバッガーで手動でコードを実行しようとすると

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

次のようなエラーが発生します。

Error: SECURITY_ERR: DOM Exception 18

他の誰かがこの経験をしましたか?誰かが解決策を提案できますか?

ありがとう

4

2 に答える 2

2

このファイルをfile:///プロトコルまたはそれ以上で表示していますかhttp://?セキュリティでページを正しく処理するには、ページを提供する必要があります。

キャッチされないエラー:SECURITY_ERR:Cookieを設定しようとするとDOM例外18

于 2011-01-05T09:10:37.723 に答える
0

rxgxはスポットオンです、私はこのエラーを頻繁に見ました。解決策としては、開発用の安価な共有ホスティングを購入するか、自分のマシンでWebサーバーを実行します。Windowsの場合、Apache Foundationから入手できるApacheインストーラーをダウンロードしてインストールし、指示に従います。Mac OS Xの場合は、システム環境設定の「共有」セクションで「Web共有」を有効にするだけです。Linuxの場合、パッケージマネージャーからapacheまたはlighttpdパッケージをインストールします。

于 2011-01-05T11:57:33.820 に答える