Поточная обработка в GWT (клиент)

Из того, что я понимаю, вся сторона клиента приложения GWT преобразовывается в JavaScript, когда Вы создаете, поэтому я предполагаю, что этот вопрос связан и с JavaScript и с возможностями это предложения GWT.

У меня есть несколько дюжин процессов, которые должны будут инициироваться в моем приложении GWT, каждый процесс будет затем непрерывно выполнять вызовы к серверу. GWT поддерживает поточную обработку? Сторона клиента GWT поддерживает поточную обработку?

Править:

Это состояния канала:

No JavaScript knowledge required If you’re just a user of the framework, 
which I am for the matter of discussion, you do not need to know JavaScript 
in order to write dynamic content, be it client-side such as rolling frames, 
docking panels or scheduled “multi-threading” tasks, or server-side calls 
using XMLHttpRequests (aka AJAX). 

или запланированные задачи “многопоточности”, что это означает?

48
задан Federer 7 April 2010 в 08:28
поделиться

3 ответа

JavaScript не поддерживает многопоточность. Однако в GWT есть класс для «имитации» многопоточности, которая не является реальной многопоточностью, но в большинстве случаев делает то, что вам нужно: com.google.gwt.core.client.Scheduler.ScheduledCommand . Метод основан на классе таймера, который выполняет метод по истечении заданного времени.

Например, при размещении следующего кода в вашем собственном коде метод scheduleDeferred вернется напрямую, и ваш код продолжится после команды, в то время как метод execute () будет выполнен с помощью таймера:

Scheduler.get().scheduleDeferred(new ScheduledCommand() {
   public void execute() {
      .. code here is executed using the timer technique.
   }
});

Вы можете создать повторяющуюся команду RepeatingCommand , которую можно использовать для выполнения команды более одного раза. Запустите его с Scheduler.get (). ScheduleIncremental () , который будет выполнять команду до тех пор, пока метод выполнения не вернет false . Вы можете использовать это, чтобы разделить задачи на подзадачи, чтобы улучшить поведение «потоковой передачи». Планировщик поддерживает некоторые дополнительные методы для другого запуска запланированной команды. См. JavaDoc для получения более подробной информации.

Отредактировано и обновлено новым классом GWT вместо устаревшего DeferredCommand .

36
ответ дан 26 November 2019 в 19:04
поделиться

JavaScript не поддерживает многопоточность, поэтому все, что GWT делает, многопоточность должен выполняться исключительно на стороне сервера, потому что GWT может использовать только те функции, которые уже доступны на стороне клиента.

0
ответ дан 26 November 2019 в 19:04
поделиться

Существует работа над Web Workers как часть HTML5, которая реализована в ряде браузеров, но не во всех (в первую очередь в internet explorer). Вы можете использовать эти возможности там, где они доступны, но лучше обратите внимание на модель программирования javascript.

Javascript обычно работает асинхронно. Запросы выполняются, и в какой-то момент ответы на них поступают в виде события. Вы можете иметь большое количество ожидающих запросов в одно и то же время. Однако это потребует некоторой перестройки вашей системы.

4
ответ дан 26 November 2019 в 19:04
поделиться
Другие вопросы по тегам:

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