Если у меня есть var на моей главной странице и есть рабочий поток, пытающийся установить этот var, есть ли способ, к которому страница может получить к нему доступ? Предполагая, что все синхронизировано?javascript Web worker - передать данные на страницу темы
var routeWorker = new Worker('getroute.js');
var checkPatrolRouteFoundTimer;
var rw_resultRoute;
var routeFound = false;
routeWorker.onmessage = function(e) {
rw_resultRoute = e.data.route;
routeFound = true;
}
function checkPatrolReady() {
if(!routeFound)
checkPatrolRouteFoundTimer = setTimeout("checkPatrolReady()", 1000);
}
function ForcePatrol(index) {
routeWorker.postMessage(index);
checkPatrolReady();
...
//do work on route
...
}
в этом случае вар я говорю о rw_resultRoute, и я могу видеть это получить набор правильно при отладке. Но единственное, что он установлен в рабочем потоке, а не в потоке страницы.
Я прохожу через метод ForcePatrol() так, как я ожидаю, и похоже, что rw_resultRoute устанавливается, поскольку routeFound оценивает значение true после завершения работника.
Технически это не имеет смысла, так как routeFound может быть задан рабочим и прочитан потоком страницы, но rw_resultRoute может быть доступен только работнику.
Я действительно надеюсь, что это возможно, в противном случае я не вижу цели для рабочих потоков, кроме отображения сообщений alert() и обновления страницы HTML.
Хорошо, согласовано. Но я все еще думаю, что вопрос о том, как страница обращается к результатам числа хруст. На мой взгляд, эти данные все еще находятся в рабочем потоке, если только они не применяются непосредственно к HTML-странице, как холст. – Stevus
«как страница доступа к повторению» Это делается с postMessage и onMessage, как я уже упоминал. Вы возвращаете данные от рабочего обратно клиенту, и вы все равно используете данные. Пройдите здесь: https://developer.mozilla.org/En/Using_web_workers – epascarello