Pregunta

Estoy usando RequestBuilder a tiempo las solicitudes de GWT que toman demasiado tiempo:

RequestBuilder requestBuilder = _service.getStatistics(callback);
requestBuilder.setTimeoutMillis(5000);
try {
    requestBuilder.send();
} catch (RequestException e) {
    GWT.getUncaughtExceptionHandler().onUncaughtException(e);
}

¿Hay una manera de notificar al servicio remoto invocado que la llamada ha tiempo de espera a cabo en el cliente y que debe ser cancelada?

¿Fue útil?

Solución

No a menos que hacer otra llamada para decirle al servicio remoto que la llamada anterior fue cancelada!

Otros consejos

Esto depende en realidad. Si el servidor está haciendo mucho trabajo (y no estás en Google App Engine) se puede mantener la Solicitud alrededor y llamar request.cancel (). Esto pondrá fin a la petición del navegador, pero el servidor va a seguir trabajando.

En función del formato de los datos va a devolver, puede hacer que el servidor a eliminar algunos datos vacíos para el cliente periódicamente mientras la llamada se processessing. Esto hará que el rubor para lanzar una IOException si el cliente ha cancelado la solicitud y la conexión HTTP está terminado. A continuación, puede coger esta solicitud y detener processessing la solicitud en el lado del servidor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top