Thanks for a clear desc. What I'd like to say is that the "refresh-save" is not a new scenario at all for web apps. Actually I have heavily used the history tokens for back/forward/reloading following the sample code of GWT ShowCase. But saving states is a subtle thing for a stateful app. Accord to the info found, there are some concerns when doing historical back/forward/reloading,
1). reloading is equivalent to rebooting of an operating system or closing of an app, implies lost every and each bit in nature; 2). reloading is a feature of the "traditional" web app with multiple separate web pages, not a preferred one for ajax apps since a GWT project has only one html file; Actually it was said that the reloading was used less and less in ajax apps if not totally abandoned; 3). Saving the states before reloading is not a simple task to do for a dynamic loaded screen; so does for loading states back and re-displaying the state exactly; 4). there remains an issue for where the states are saved. Save them to the server side or save it as cookie on the client side? a fashionable way is to save the states to the persistence on the server side; 5). saving states involves saving all the state data from every possible screen the app might have, which is not a simple job; I have studied the example of the ShowCase and found that the app actually loads every possible content screen into a collection and adds them all as history tokens while the app initializes. This is good for a small app but not preferable for a very large web project for sure. Secondly it's found when clicking the reloading button from the browser, actually the app only reloads the content widget with "static" data, not exactly re-display the previous state. You can see it by clicking the "Source Code" tab then pressing "reload" button. Welcome any comments. Thanks, Mike J. Based on the above points, I want to avoid reloading or refreshing and let the page simply stays as it is. It's a lazy person's scenario. It might be totally wrong. But I have not been convinced what's the fatal error in this method. On Mon, May 31, 2010 at 10:53 PM, Ranjan <[email protected]> wrote: > It is not possible to avoid refresh(reload) through scripts. The only > possible thing is you could display an alert message through the > browser which provides the User with option to either stay on the page > or leave it. Which is what is done in the CloseHandler in your example > script. > > What federico wants to say is you should use history-tokens to save > your states. > history > Use Refresh, Back, Forward as a feature and not a catastrophe, with > the the help of GWT History support. > > On Jun 1, 6:57 am, Mike Jiang <[email protected]> wrote: > > Don't get it. Please show your good design in an understandable style. > > > > On Fri, May 28, 2010 at 4:49 PM, federico <[email protected] > >wrote: > > > > > > > > > bad design. > > > "refresh" is a feature and you should provide bokmarkable refresh-save > > > pages. > > > > > On 28 Mag, 20:42, Mike J <[email protected]> wrote: > > > > Hi, > > > > I ran into a problem about clicking the "reload" button on a web > > > > browser. > > > > > > My app is a stateful GWT app. Users need to be authenticated for > > > > login. After login they can surf on various pages. But users > sometimes > > > > were used to press the "reload" button on the browser to refresh the > > > > page. > > > > > > The reloading process just bring the screen back to a reboot > state, > > > > with all state info lost. That's not what we expect. > > > > > > The quick solution is, catch the reload event before the browser > > > > sends the "reload" request to the web server and prevent the browser > > > > from sending it. > > > > > > I have read the relevant posts in this group and found the useful > > > > info that "reload" event is equivalent to the Window Closing event. > So > > > > in the following code snippet I can catch the event, > > > > > > Window.addCloseHandler(new CloseHandler<Window>() { > > > > public void onClose(CloseEvent<Window> event) { > > > > //prevent browser sending the reload request to the > > > > web browser > > > > } > > > > }); > > > > > > But I don't know how I can stop the browser from sending the > > > > "reload" request to the web server. > > > > > > Thanks for any help, > > > > > > Mike J. > > > > > -- > > > You received this message because you are subscribed to the Google > Groups > > > "Google Web Toolkit" group. > > > To post to this group, send email to > [email protected]. > > > To unsubscribe from this group, send email to > > > [email protected]<google-web-toolkit%[email protected]><google-web-toolkit%2Bunsubs > [email protected]> > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/google-web-toolkit?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Google Web Toolkit" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-web-toolkit%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-web-toolkit?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
