Пример HTML 5 Web Worker не работает в 8.0.552.231 - PullRequest
1 голос
/ 05 января 2011

Я следую этому примеру по адресу: 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);
}

Этот пример отлично работает в Firefoxи Safari версии 5.0.2 (6533.18.5) на Mac OSX, но не работает в Chrome.Когда я отлаживаю его, worker.js даже не указан как один из источников.Что странно, так это то, что примерная ссылка на страницу на том же веб-сайте прекрасно работает в Chrome, который совпадает с моим локальным кодом.Но мой локальный код не работает в Chrome.

Когда я пытаюсь вручную запустить код в отладчике Javascript, как этот

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

Я получаю сообщение об ошибке:

Error: SECURITY_ERR: DOM Exception 18

У кого-нибудь еще был такой опыт?Кто-нибудь может предложить решение?

Спасибо

Ответы [ 2 ]

2 голосов
/ 05 января 2011

Вы просматриваете этот файл по протоколу file:/// или более http://? Вам нужно будет обслуживать страницу, чтобы обеспечить ее правильную обработку.

Uncaught Error: SECURITY_ERR: DOM Exception 18, когда я пытаюсь установить cookie

0 голосов
/ 05 января 2011

rxgx - точка, я часто видел эту ошибку. Что касается решения, либо купите дешевый общий хостинг для разработки, либо запустите веб-сервер на своей машине. Для Windows загрузите и установите установщик Apache, предоставляемый из фонда Apache, и следуйте инструкциям. Для Mac OS X просто включите веб-общий доступ в разделе «Общий доступ» в Системных настройках. Для Linux установите пакет apache или lighttpd через менеджер пакетов.

...