Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2014, 12:37
Интересующийся
Отправить личное сообщение для javandernufirzam Посмотреть профиль Найти все сообщения от javandernufirzam
 
Регистрация: 27.01.2014
Сообщений: 18

Web Workers - возможна ли передача в поток строки кода JS
почитал пару статей на тему WW
и понял что создается поток так:

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

в конструктор передается адрес скрипта


вопрос - можно ли конструктору передавать полный текст скрипта -
new Worker('скрипт')
new Worker(eval(x))

смысл в том что есть задача генерировать код для потоков программно, без обращения к файловой системе и к серверу
без использования статического когда js например уже загруженного в теле документа

Последний раз редактировалось javandernufirzam, 27.01.2014 в 13:27.
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2014, 13:03
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

можно сделать Blob и передать на него ссылку.

https://developer.mozilla.org/en-US/...ng_web_workers

параграф Embedded workers
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2014, 13:11
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

https://github.com/padolsey/operative
__________________
kobezzza
code monkey
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2014, 13:16
Интересующийся
Отправить личное сообщение для javandernufirzam Посмотреть профиль Найти все сообщения от javandernufirzam
 
Регистрация: 27.01.2014
Сообщений: 18

спасибо товарищи. но мне надо понятнее и на русском, чтобы самому сделать а не изучать чужие фреймворки
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2014, 13:27
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от javandernufirzam
чтобы самому сделать
var code = 'postMessage(123);';
var blob = new Blob([code],{type: "text/javascript"});
var ref = URL.createObjectURL(blob);
var worker = new Worker(ref);
worker.onmessage = function (oEvent) {
    alert("data from worker: " + oEvent.data);
};
URL.revokeObjectURL(ref);

Последний раз редактировалось Яростный Меч, 27.01.2014 в 13:32.
Ответить с цитированием
  #6 (permalink)  
Старый 27.01.2014, 13:39
Интересующийся
Отправить личное сообщение для javandernufirzam Посмотреть профиль Найти все сообщения от javandernufirzam
 
Регистрация: 27.01.2014
Сообщений: 18

спасибо. но вторую половину не понял, строки 4-8
поясни пожста чо это
Ответить с цитированием
  #7 (permalink)  
Старый 27.01.2014, 14:00
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от javandernufirzam
но вторую половину не понял, строки 4-8
4 - создается воркер по тому "урлу", который внутри себя неким образом содержит строку с кодом.
5-7 - механизм обмена данными с воркером, здесь он для демонстрации работы и к теме отношения не имеет.
8 - убиваем ссылку на блоб, чтобы не повисла и не было утечек памяти.
Ответить с цитированием
  #8 (permalink)  
Старый 27.01.2014, 14:02
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

тут основная идея как раз в строках 2-3, для их осознания раскури html5 FileAPI
Ответить с цитированием
  #9 (permalink)  
Старый 27.01.2014, 14:05
Интересующийся
Отправить личное сообщение для javandernufirzam Посмотреть профиль Найти все сообщения от javandernufirzam
 
Регистрация: 27.01.2014
Сообщений: 18

var code = 'postMessage(123);';
var blob = new Blob([code],{type: "text/javascript"});
var ref = URL.createObjectURL(blob);
var worker = new Worker(ref);
.....
URL.revokeObjectURL(ref);


- то есть такова обязательная последовательность


спасибо
Ответить с цитированием
  #10 (permalink)  
Старый 27.01.2014, 14:20
Интересующийся
Отправить личное сообщение для javandernufirzam Посмотреть профиль Найти все сообщения от javandernufirzam
 
Регистрация: 27.01.2014
Сообщений: 18

Сообщение от Яростный Меч Посмотреть сообщение
тут основная идея как раз в строках 2-3, для их осознания раскури html5 FileAPI
понял

но ничож более знать-то не надо для запуска и работы в таком режиме ?
я могу просто вставить такой кусок кода и всё - готовое решение ? не ?

Последний раз редактировалось javandernufirzam, 27.01.2014 в 14:33.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление JS кода в HTML страницу (расширение) iLnes Общие вопросы Javascript 2 18.06.2013 06:04
Вставка кода js с помощью js Alice Общие вопросы Javascript 1 12.06.2013 19:05
Ищу приличный редактор кода под JS Universe Общие вопросы Javascript 28 30.10.2012 18:30
Как реализовать отключения JS кода через админку ? lamer Серверные языки и технологии 4 08.02.2012 17:23
Добавление кода js в js файл BEUJ Общие вопросы Javascript 13 12.01.2012 21:35