Po wielu przypadkach pomocy technicznej zdajemy sobie sprawę, że największym problemem, jaki mamy z naszą aplikacją opartą na GWT, jest to, że użytkownicy pozostawiają go otwarte przez kilka tygodni. Oznacza to, że gdy co tydzień lub dwa wprowadzamy poprawkę, kody pośredniczące RPC są niezsynchronizowane i powodują wygenerowanie cichych wyjątków powodujących, że witryna wygląda "zepsuta". Czy ktoś wie o sposobie automatycznego wykrycia i uniknięcia tego problemu? Kilka pomysłów miałem ...Elegancki sposób na wykrycie, czy aplikacja GWT jest nieaktualna i czy automatycznie odświeżana przeglądarka?
- Po złapaniu wyjątku niezgodności RPC odśwież przeglądarkę.
- Podczas ładowania strony hosta należy wprowadzić numer wersji w kontrolerze źródłowej, z której pochodzi kompilacja, mieć kontroler stanu/timer, który sprawdza, czy liczba nie uległa zmianie. Kiedy przeładuje.
- Załaduj ponownie na dowolnym zegarze (być może dwa razy dziennie).
Jakieś pomysły?
Poszedłbym z opcją 1, ponieważ będzie konsekwentnie "IncompatibleRemoteServiceException". Złap, daj im ładny komunikat o błędzie i 'location.reload (true);'. – Strelok
Zgodnie z [javadoc] (http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/user/client/rpc/IncompatibleRemoteServiceException.html), IncompatibleRemoteServiceException nie jest generowany, gdy po prostu zmieniasz implementację metody usługi bez dodawania lub usuwania pól. Więc idę z moją wersją opcji 2: Mam numer kompilacji po stronie klienta. Każde wywołanie RPC GWT powinno wysłać ten numer kompilacji na serwer. Możesz sprawdzić, czy numer kompilacji jest najnowszy po stronie serwera, jeśli nie możesz odświeżyć stronę. –