سؤال

أنا أتابع هذا المثال على: http://www.whatwg.org/specs/web-work/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>

العامل

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.

عندما أحاول تشغيل رمز يدويًا في جافا سكريبت مصحح مثل هذا

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

أحصل على خطأ يقول:

Error: SECURITY_ERR: DOM Exception 18

هل لدى أي شخص آخر هذه التجربة؟ هل يستطيع أحدكم اقتراح حل؟

شكرًا

هل كانت مفيدة؟

المحلول

هل تشاهد هذا الملف في file:/// بروتوكول أو أكثر http://؟ سيكون عليك خدمة الصفحة حتى يتمكن الأمان من معالجتها بشكل صحيح.

خطأ غير معطل: Security_err: DOM استثناء 18 عندما أحاول تعيين ملف تعريف الارتباط

نصائح أخرى

RXGX على الفور ، لقد رأيت هذا الخطأ في كثير من الأحيان. بالنسبة للحل ، إما شراء بعض الاستضافة المشتركة الرخيصة للتطوير ، أو ، قم بتشغيل خادم ويب من الجهاز الخاص بك. لنظام التشغيل Windows ، قم بتنزيل وتثبيت Apache Installer المتاح من مؤسسة Apache ، واتبع الإرشادات. بالنسبة لـ Mac OS X ، فقط قم بتمكين مشاركة الويب في قسم المشاركة في تفضيلات النظام. بالنسبة إلى Linux ، قم بتثبيت حزمة Apache أو LightTPD من خلال مدير الحزمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top