Семафор javascript / проверка и установка / блокировка?

Прежде всего, хотя то, что .js javaScript является однопоточным, верно, Неверно, что .js для приложения javaScript javascript никогда не требуется никакого .js механизма сериализации.

Простой concurrency-violation пример: кнопка отправки должна semaphores исчезнуть в течение определенного concurrent-programming периода времени, в течение semaphores которого выполняется запрос js Ajax к серверу. Когда асинхронный ecmascript запрос Ajax успешно завершится, сообщение concurrency должно появиться там, где concurrency-violation раньше была кнопка.

Хотя было semaphore бы неплохо иметь возможность .js отменить постепенное исчезновение javascript-library кнопки и просто установить js для нее стиль «display: none», как concurrent только запрос Ajax завершится, это javascript невозможно в jQuery. Кроме concurrent-programming того, решение может использовать js события для синхронизации javascript двух одновременных действий, но js для простой проблемы это, по javascript-library сути, излишне.

Низкотехнологичное semaphore решение - опросить блокировку, и js когда исчезновение завершится, она semaphores разблокируется, но сообщение semaphore "сервер готов" НЕ отображается ecmascript до тех пор, пока не будет concurrency выполнен обратный вызов успеха, установленный js $ .post.

var gl_lock;
var gl_selfID;

function poll_lock(message) {
     if (gl_lock === 0) {
          $('#output').text(message).fadeIn(200);
          window.clearInterval(gl_selfID);
     }
 } // end of poll_lock

 function worker() {

     // no one gets in or out
     gl_lock = 1;

     $.post(..., data,function() { 
           gl_selfID = window.setInterval(poll_lock, 40, data.message);
      }, "json");

     // end of fadeout unlock the semaphore
     $('#submit-button').fadeOut(400, function() { gl_lock = 0; });

  } // end of worker

Наконец, я думаю, что concurrent это более подробный ответ, аналогичный javascript-library тем, которые ранее предлагались concurency в этом обсуждении perrohunter.

javascript

concurrency

semaphore

2022-10-26T21:37:06+00:00