Dopo molti casi di supporto stiamo realizzando il problema più grande che abbiamo con la nostra applicazione basata su GWT è che gli utenti lo lasciano aperto per settimane alla volta. Questo significa che quando facciamo una correzione ogni settimana o due gli stub RPC non sono sincronizzati e causiamo il lancio di eccezioni silenziose rendendo il sito "danneggiato". Qualcuno sa di un modo per rilevare automaticamente ed evitare questo problema? Alcune idee che ho avuto sono ...Modo elegante per rilevare se l'applicazione GWT non è aggiornata e si aggiorna automaticamente il browser?
- Alla cattura di un'eccezione di mancata corrispondenza RPC, aggiornare il browser.
- Quando si carica la pagina host, si inserisce il numero di versione nel controllo sorgente da cui proviene la build, con un controllo dello stato/timer che controlla che il numero non sia cambiato. Quando si ricarica.
- Ricarica su un timer arbitrario (forse due volte al giorno).
Qualche idea?
Vorrei andare con l'opzione 1 poiché sarà sempre un 'IncompatibleRemoteServiceException'. Prendilo, dagli un bel messaggio di errore e 'location.reload (true);'. – Strelok
Come per [javadoc] (http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/user/client/rpc/IncompatibleRemoteServiceException.html), IncompatibleRemoteServiceException non viene generato quando è sufficiente modificare l'implementazione di un metodo di servizio senza aggiungere o rimuovere campi. Quindi, vado con la mia versione dell'opzione 2: avere il numero di build sul lato client. Ogni chiamata GWT RPC dovrebbe inviare questo numero di build al server. È possibile controllare se il numero di build è più recente sul lato server, in caso contrario è possibile aggiornare la pagina. –