Javascript.RU

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

Сообщение от javandernufirzam
я могу просто вставить такой кусок кода и всё - готовое решение
в принципе да, должно работать
function workerFromCode(code) {
   var blob = new Blob([code],{type: "text/javascript"});
   var ref = URL.createObjectURL(blob);
   var worker = new Worker(ref);
   URL.revokeObjectURL(ref);
   return worker;
}


Сообщение от javandernufirzam
скажи что такое Blob пжста
основная сущность FileAPI, для различных целей.
содержит внутри себя массив байтов. Может быть отправлен на сервер через XHR, сохраняться в FileSystem, либо применяться как источник данных (вместе с URL createObjectURL/revokeObjectURL) для src картинок, фреймов, href ссылок - т.е. вместо ссылки на серверный http-ресурс
Ответить с цитированием
  #12 (permalink)  
Старый 27.01.2014, 14:35
Интересующийся
Отправить личное сообщение для javandernufirzam Посмотреть профиль Найти все сообщения от javandernufirzam
 
Регистрация: 27.01.2014
Сообщений: 18

спасибо!

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

Сообщение от javandernufirzam
если знаком с многопоточным программированием на десктопе - скажи, какая разница есть принципиальная
принципиальная - нет объектов синхронизации, таких как мютексы, критические секции и прочие семафоры.

воркеры - это чисто вычислительные потоки, лишенные доступа к UI. для взаимодействия с UI они используют очередь сообщений основного потока, закидывая туда команды функцией postMessage и получая оттуда команды через onmessage - этот механизм эквивалентен виндовой "очереди сообщений", в которую попадают события для окон.
Ответить с цитированием
  #14 (permalink)  
Старый 27.01.2014, 15:04
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Яростный Меч Посмотреть сообщение
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);
Удобнее использовать toString у функций.

function foo() {
    ...
}

var blob = new Blob([foo.toString()], {type: "text/javascript"});
__________________
kobezzza
code monkey
Ответить с цитированием
  #15 (permalink)  
Старый 27.01.2014, 15:11
Интересующийся
Отправить личное сообщение для javandernufirzam Посмотреть профиль Найти все сообщения от javandernufirzam
 
Регистрация: 27.01.2014
Сообщений: 18

Сообщение от Яростный Меч Посмотреть сообщение
принципиальная - нет объектов синхронизации, таких как мютексы, критические секции и прочие семафоры.
- вот я об этом.
отсутствие перечисленных штуковин чего лишает меня в жизни?

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

Цитата:
Взаимодействие c помощью передачи сообщений: на каждом процессоре многопроцессорной системы запускается однопоточный процесс, который обменивается данными с другими процессами, работающими на других процессорах, с помощью сообщений. Процессы создаются явно, путем вызова соответствующей функции операционной системы, а обмен сообщениями - с помощью библиотеки (например, реализация протокола MPI), или с помощью средств языка (например, High Performance Fortran, Erlang или occam). Обмен сообщениями может происходить асинхронно, либо c использованием метода «рандеву», при котором отправитель блокирован до тех пор, пока его сообщение не будет доставлено. Асинхронная передача сообщений может быть надёжной (с гарантией доставки) либо ненадёжной[3].
Параллельные системы, основанные на обмене сообщениями, зачастую более просты для понимания, чем системы с разделяемой памятью, и обычно рассматриваются как более совершенный метод параллельного программирования. Существует большой выбор математических теорий для изучения и анализа систем с передачей сообщений, включая модель акторов и различные виды исчислений процессов.

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

Сообщение от javandernufirzam
отсутствие перечисленных штуковин чего лишает меня в жизни?

что я без них совсем не смогу сделать и жизнь моя на десктопе будет печальной
то есть если я на десктопе обойдусь архитектурой из js
наверно, каких-нибудь относительно редких кейсов для синхронизации нескольких вычислительных потоков между собой.
навскидку трудно специально придумать.
проще взять конкретный сценарий и разобраться - можно его реализовать только через очередь сообщений, или нет.
Ответить с цитированием
  #17 (permalink)  
Старый 27.01.2014, 15:35
Интересующийся
Отправить личное сообщение для javandernufirzam Посмотреть профиль Найти все сообщения от javandernufirzam
 
Регистрация: 27.01.2014
Сообщений: 18

получается - js в плане вычислений и интерфейса не уступает дестктопным приложениям ??
Ответить с цитированием
  #18 (permalink)  
Старый 27.01.2014, 15:58
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от javandernufirzam
получается - js в плане вычислений и интерфейса не уступает дестктопным приложениям ??
Про вычисления - может уступать по скорости (по крайней мере, вряд ди JS будет выполняться быстрее С++).

Насчет интерфейса - да, в современных браузерах не уступает (тут скорее надо говорить о html и особенно css), ну кроме всяких там иконок в трее и т.п. А вообще этот момент холиварный, и на форумах вроде "просто треп" (на sql.ru) всегда вызывает срач до потолка

у веб-интерфейса основные недостатки - слабая поддержка устройств (типа сканера), буфера обмена, и прочих системных штук.
Ответить с цитированием
  #19 (permalink)  
Старый 27.01.2014, 16:45
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от javandernufirzam Посмотреть сообщение
получается - js в плане вычислений и интерфейса не уступает дестктопным приложениям ??
WebWorkers API не является часть JS - это внешнее API браузера, например в Node.js их нет. А уступает не уступает надо сравнивать с конкретной реализацией конкретного языка.
__________________
kobezzza
code monkey
Ответить с цитированием
  #20 (permalink)  
Старый 27.01.2014, 17:17
Интересующийся
Отправить личное сообщение для javandernufirzam Посмотреть профиль Найти все сообщения от javandernufirzam
 
Регистрация: 27.01.2014
Сообщений: 18

здесь я говорю не о сферическом js в вакууме, а о связке технологий, хтмл5

это сложившийся фундамент веб приложений, ассемблер
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление 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