Pergunta

É possível fazer um bloqueio de GWT RPC? ou seja, o aplicativo bloqueia até que uma resposta seja recebida do servidor

Foi útil?

Solução

Até onde eu sei, não há bloqueio de RPC GWT, porque é uma ideia oposta ao retorno de chamada assíncrona.

Mas você pode usar esses dois métodos

  1. Cronômetro. Conte o temporizador e verifique se existe algum objeto de retorno que não seja nulo, pare e cancele o cronômetro e continue seu trabalho. Se o timer estiver ativo, não faça outro trabalho. Esta é uma maneira muito ineficiente. Falta de padrão de design OO e muitas declarações if-else-se
  2. Ligue para RPC e faça todas as ações em onSuccess() método. Ele garante que seu método seja concluído e terminado com sucesso e continue em outros métodos.

Meu conselho é o segundo (OnSuccess). Quero mencionar novamente que o bloqueio nunca é uma boa ideia

Outras dicas

Bem, as chamadas de RPC do Synchronus são chamadas de males dos designers da GWT. Eles têm argumentos muito fortes ... mas você pode ter sucesso no RPC síncrono por meio de hacks ... aqui é um deles,http://code.google.com/p/google-web-toolkit/issues/detail?id=4898

A solução mais simples que me veio à mente seria "bloquear" sua aplicação a partir do ponto em que a chamada assíncrona começa até o preenchimento ser concluído, o que estaria no final do onSuccess() método.

Bloqueando, quero dizer apenas para mostrar alguns GIF de carregamento animado no meio da página.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top