Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получить страницу с помощью WebWorker (https://javascript.ru/forum/misc/51017-poluchit-stranicu-s-pomoshhyu-webworker.html)

_Alex9_ 21.10.2014 09:13

Получить страницу с помощью WebWorker
 
Мой код выдаёт ошибку безопасности, поэтому хочу услышать от вас варианты как мне реализовать предзагрузку страниц в фоновом режиме на сайте.
Мой код:
на странице сайта example.com
<area shape='rect' coords='84,84,293,111' onclick='go()'>"


главный поток

var pages = {};
var loader = new Worker("http://sub1.example.com/w_p.js");
loader.onmessage = function (e) {
    pages = e.data;
}
function go()
{    
    doc.getElementById(contentContainer).innerHTML = pages[0];
}

воркер

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://sub2.example.com/", false);
xhr.send();
var pages = {};
pages[0] = xhr.responseText;
postMessage(pages);


Выдаёт ошибку:
SecurityError: The operation is insecure.

var loader = new Worker("http://sub1.example.com/w_p.js");

Aetae 21.10.2014 10:58

Использовать асинхронный запрос:blink: ??
xmlhttp.open('GET', 'http://sub2.example.com/', *!*true*/!*);
xmlhttp.onreadystatechange = function() {
  if (xmlhttp.readyState == 4) {
     if(xmlhttp.status == 200) {
       alert(xmlhttp.responseText);
         }
  }
};
xmlhttp.send(null);

_Alex9_ 29.10.2014 10:55

Всё равно пишет SecurityError: The operation is insecure.

danik.js 29.10.2014 17:06

А какой смысл делать это в воркере?

_Alex9_ 01.11.2014 16:39

Чтобы не дергать основной поток загрузкой других страниц. Когда помещаю скрипт воркера на сайт, с которого его запрашиваю, то всё работает. Но мне желательно, чтобы воркер, как и основной скрипт, располагался на cdn.

Aetae 01.11.2014 16:46

_Alex9_,
Цитата:

Использовать асинхронный запрос
...без воркера.

_Alex9_ 02.11.2014 08:05

Благодарю. А с воркером так точно нельзя? Mozilla ни одной лазейки не оставила?

Erolast 02.11.2014 08:09

Зачем? Это всегда асинхронным запросом делается.

kostyanet 02.11.2014 20:07

Рабочий должен спать, тогда в нем есть смысл (иначе без него заснет браузер), а тут нет смысла.

Octane 03.11.2014 01:14

Цитата:

Сообщение от _Alex9_
А с воркером так точно нельзя? Mozilla ни одной лазейки не оставила?

https://developer.mozilla.org/en-US/..._API_reference
Цитата:

Сообщение от MDN
A Service Worker inherits all the limitations and behaviors available to HTML5 Shared Workers. It can create XMLHttpRequests, use WebSockets, receive messages from windows and the browser, use IndexedDB, and post messages to other windows.



Часовой пояс GMT +3, время: 15:30.