Thanks, Sven! Back button might work with HTML5 history APIs but multi window support is indeed a problem.
Martin Grigorov Wicket Training and Consulting https://twitter.com/mtgrigorov On Sat, Apr 2, 2016 at 10:37 AM, Sven Meier <[email protected]> wrote: > ... and what about back-button support? > > Sven > > > On 02.04.2016 09:41, Sven Meier wrote: > >> Hi Martin, >> >> what about multi-window support? >> >> I.e. the user is working on different page instances of same type >> simultaneously? >> >> Sven >> >> On 02.04.2016 00:07, Martin Grigorov wrote: >> >>> Hi, >>> >>> >>> https://cwiki.apache.org/confluence/display/WICKET/Ideas+for+Wicket+8.0#IdeasforWicket8.0-BetterSEOforstatefulpages >>> >>> The best way to send the page id with each request without "polluting" >>> the >>> url is to use request headers. Unfortunately there is no way to add >>> request >>> headers for non-Ajax requests, so this won't work. >>> >>> Now I'm thinking of another approach - store the id in the Session. >>> (It is 01:00 so forgive me if I miss something). >>> ?pageId is added only for stateful pages, i.e. Wicket binds a Session >>> already. >>> Instead of encoding the pageId in the query string we can store it (e.g. >>> as >>> <pageId, pageClass> struct) in the Session. >>> All links in the page will still use ?pageId. They do not appear in the >>> browser's address bar so they do not need to be changed! >>> Only the url for the page redirects won't have it. >>> Whenever a page is rendered the struct will be updated. If the page is >>> stateless then the struct will be null-ified. >>> If the user reloads the page (F5) then Wicket will detect that this is >>> the >>> same page class as the one in the struct and use the page id. >>> If the application uses setResponsePage(Class) or >>> RestartResponseException(Class) then the struct will be null-ified. So >>> the >>> application will be able to redirect to a new instance of the same page >>> type. >>> >>> The only problem that I see is using BookmarkablePageLink that links to >>> the >>> current page. In that case Wicket will serve the old instance instead of >>> creating a new one. >>> >>> What other problems do you see in this approach ? >>> >>> >>> Martin Grigorov >>> Wicket Training and Consulting >>> https://twitter.com/mtgrigorov >>> >>> >> >
