Многопоточный JavaScript, как к?

Есть ли какая-либо идея (библиотека или методология) для создания многопоточных приложений в JavaScript?

9
задан Kowalikus 27 January 2010 в 09:51
поделиться

4 ответа

Другое моделирование потоков, которые я нашел довольно стабильным, это использовать изображение. Который, кажется, загружен в другую нить в браузере (?). Однако ваш обратный вызов JavaScript будет всегда последовательно.

Здесь ниже он загружает 500 из них.

<html>
<head>
   <title>so</title>
    <style></style>
</head>
<script>
    function callBack(img){
        var i = 0, img, res = document.getElementById('res'),
            fn = function(cnt){
                var img = document.createElement('img');
                img.onerror = function(ev){
                    res.innerHTML += cnt + ', ';
                    document.body.removeChild(img);
                };
                img.src = 'javascript:void(0)';
                document.body.appendChild(img);
            };
        do{
            fn(i++);
        }while(i<500);
    }
</script>
<body onload="callBack()">
    <div id="res"></div>
</body>
</html>
1
ответ дан 4 December 2019 в 19:33
поделиться

Новейшая выпуск DEVINESIONS GIT Visual Studio 2010 Теперь (наряду с Visual Studio 2008 и Visual Studio 2005 ).

Я обнаружил, что он был довольно простым в использовании с Visual Studio 2008, и интерфейс, по-видимому, одинаково в Visual Studio 2010.

-121--1750006-

JavaScript на самом деле не имеет многопоточных возможностей , и нет ничего программатора JavaScript, чтобы изменить это.

Однако то, что мы можем сделать, это имитировать мульти-резьбу. Пожалуйста, пройдите через эту статью .

И есть ссылка PDF на JavaScript Multithread Framework для асинхронной обработки Тезис

4
ответ дан 4 December 2019 в 19:33
поделиться

Самые близкие, которые вы получите веб-работники (только в FF 3.5 / HTML5). Проверьте это - http://www.whatwg.org/specs/web-workers/current-work/

7
ответ дан 4 December 2019 в 19:33
поделиться

Здесь какой-то рекурсивный алгоритм от лекции проф. Георг Умлауф

INTERSECT(b_0,...,b_m;c_0,...,c_n, EPSILON)
  if [min b_i, max b_i] AND [min c_i, max c_i] != EMPTY { // check bounding boxes
    if m*(m-1)*max||delta^2(b_i)|| > EPSILON) { // check flatness
      Calculate b'_0, ..., b'_2m over [0, 0.5, 1] with the deCasteljau algorithm;
      INTERSECT(b'_0,...,b'_m;c_0,...,c_n;EPSILON);
      INTERSECT(b'_m,...,b'_2m;c_0,...,c_n;EPSILON);
    }
  }
  else {
    if (n*n-1)*max||delta^2(c_i)|| > EPSILON then {
      Calculate c'_0, ..., c'_2m over [0, 0.5, 1] with the deCasteljau algorithm;
      INTERSECT(b_0,...,b_m;c'_0,...,c'_n;EPSILON);
      INTERSECT(b_0,...,b_m;c'_n,...,c'_2n;EPSILON);
    }
    else {
      Intersect line segments b_0b_m and c_0c_n;
    }
  }

Где delta ^ 2 (b_i) определяется как b_ {i + 2} - 2 * b_ {i + 1} + b_i .

-121--3176660-

JavaScript - это динамический язык программирования и может использоваться для многих разных вещей. Если в браузере не используется, вы можете полностью полагаться на вещи, такие как несколько потоков, петли событий и т. Д. Вы должны проверить Node.js .

Браузер к сожалению дает вам строгий набор функций языка.

0
ответ дан 4 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: