No problem! I would just like to understand all your ideas before doing anything further changes :)
But to be honest, i still don't understand how LAZY should work. What will happen on a GET request with windowId? The page will be rendered normally and the windowhandler will check the window.name and compare with the current windowId request param. If it doesn't match -> refresh the page with the windowId from window.nameOR should it generate a new one with a refresh without windowId? It's clear without windowId -> create new id and do a initial redirect + set windowId as window.name 2014/1/10 Mark Struberg <strub...@yahoo.de> > > > btw, thanks for bringing those questions up on the list - this is surely > not documented well enough ;) > Also it's really a hard thing to get right alone, so thanks for pushing > this! > > LieGrue, > strub > > > > > > >________________________________ > > From: Thomas Andraschko <andraschko.tho...@gmail.com> > >To: Mark Struberg <strub...@yahoo.de> > >Cc: "dev@deltaspike.apache.org" <dev@deltaspike.apache.org> > >Sent: Friday, 10 January 2014, 14:18 > >Subject: Re: JSF - default ClientWindowRenderMode? > > > > > >2014/1/10 Mark Struberg <strub...@yahoo.de> > > > >> Otherwise one could just open the same bookmark URL with the > &windowId=123 > >> parameter in multiple browser tabs and you would again share the state > >> between them. > > > > > >Thats true but as far as i understand, we can't avoid such situations > >without streaming the windowhandler etc. > > > >Maybe you can explain LAZY a little bit more + some cases. > > > > > > > >2014/1/10 Mark Struberg <strub...@yahoo.de> > > > >> > >> > >> It's a bit more complicated. > >> > >> In case of any mismatch (regardless if window.name is empty or just > >> different from the windowId url parameter) you need to trigger a more > >> complex handling to properly set the window.name. > >> > >> Otherwise one could just open the same bookmark URL with the > &windowId=123 > >> parameter in multiple browser tabs and you would again share the state > >> between them. > >> > >> Actually the windowhandler.js script should contain all the necessary > >> handling code already. > >> > >> LieGrue, > >> strub > >> > >> > >> > >> > >> > >> >________________________________ > >> > From: Thomas Andraschko <andraschko.tho...@gmail.com> > >> >To: dev@deltaspike.apache.org; Mark Struberg <strub...@yahoo.de> > >> >Sent: Friday, 10 January 2014, 13:58 > >> >Subject: Re: JSF - default ClientWindowRenderMode? > >> > > >> > > >> > > >> >Ok would be fine for me, too! > >> >The script for the LAZY mode will just do: > >> >- if window.name == undefined -> window.name == windowId > >> >- if window.name != undefined && window.name != windowId -> redirect > >> with removed windowId url param > >> > > >> > > >> > > >> > > >> > > >> > > >> >2014/1/10 Mark Struberg <strub...@yahoo.de> > >> > > >> > > >> >> > >> >>I'm fine with making the 'URL' mode the default. I still like the name > >> 'LAZY' better though ;) > >> >> > >> >>Even the CLIENT_WINDOW mode will add a windowId parameter to the URL > in > >> some cases! > >> >>The name 'LAZY' just makes it more clear that the > >> wrong-browser-tab-detection is only done lazily and the initial request > >> might trash beans... > >> >> > >> >> > >> >> > >> >>LieGrue, > >> >>strub > >> >> > >> >> > >> >>>________________________________ > >> >>> From: Thomas Andraschko <andraschko.tho...@gmail.com> > >> >>>To: dev@deltaspike.apache.org; Mark Struberg <strub...@yahoo.de> > >> >>>Sent: Friday, 10 January 2014, 13:43 > >> >> > >> >>>Subject: Re: JSF - default ClientWindowRenderMode? > >> >>> > >> >>> > >> >>>Ok! So keeping the new URL mode, which is indentical to the deafult > CODI > >> >>>mode, makes sense for me. > >> >>> > >> >>>I will open another thread for the details here and some ideas about > >> >>>refactoring from my side. > >> >>> > >> >>>What do think about the default mode Mark? Should it be URL like its > in > >> >>>CODI? > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> > >> >>>2014/1/10 Mark Struberg <strub...@yahoo.de> > >> >>> > >> >>>> right. > >> >>>> > >> >>>> Basically you have to distinguish the two sides of the story. > >> >>>> > >> >>>> a.) how does the browser handle the windowId > >> >>>> b.) how does any servlet part detect the windodwId and how to > detect > >> that > >> >>>> it is missing (and should be there) > >> >>>> > >> >>>> The windowId is added as root element to the view tree. I know that > >> this > >> >>>> did not work with the 'old' PrimeFaces proprietary ajax handling. > But > >> i was > >> >>>> under the impression that this was long time fixed since then when > >> Cagatay > >> >>>> switched to standard jsf.js AJAX functions. Or is this still not > >> working? > >> >>>> > >> >>>> The point is that jsf.js always has to update the view root as it > also > >> >>>> needs to update the view key, right? > >> >>>> > >> >>>> LieGrue, > >> >>>> strub > >> >>>> > >> >>>> > >> >>>> > >> >>>> > >> >>>> >________________________________ > >> >>>> > From: Thomas Andraschko <andraschko.tho...@gmail.com> > >> >>>> >To: dev@deltaspike.apache.org; Mark Struberg <strub...@yahoo.de> > >> >>>> >Sent: Friday, 10 January 2014, 11:38 > >> >>>> >Subject: Re: JSF - default ClientWindowRenderMode? > >> >>>> > > >> >>>> > > >> >>>> > > >> >>>> >Addition to the windowhandler: > >> >>>> >It will also add windowId as hidden input for postback detection, > >> right? > >> >>>> >This will not work with e.g. PrimeFaces' partial submit mode. > >> >>>> >So the URL param will be used as fallback, right? > >> >>>> > > >> >>>> > > >> >>>> > > >> >>>> > > >> >>>> >2014/1/10 Thomas Andraschko <andraschko.tho...@gmail.com> > >> >>>> > > >> >>>> >Hi Mark, > >> >>>> >> > >> >>>> >>i think the whole stuff needs a little bit more discussing. > >> >>>> >> > >> >>>> >> > >> >>>> >>I would like now to list all window modes that we actually know: > >> >>>> >> > >> >>>> >> > >> >>>> >>CODI > >> >>>> >>==================== > >> >>>> >>- WIndowContextIdHolderComponent will automatically be added to > the > >> >>>> component tree for extracting the windowId in a postback > >> >>>> >>- All 3 modes can use the WIndowContextIdHolderComponent as > >> fallback for > >> >>>> getting the windowId in a postback > >> >>>> >> > >> >>>> >> > >> >>>> >>1) DefaultWindowHandler > >> >>>> >> > >> >>>> >> - Always appends the windowId to the URL and always gets the > >> windowId > >> >>>> from the URL > >> >>>> >> > >> >>>> >> - No JS checks etc. > >> >>>> >> > >> >>>> >> - opening a link in a new tab will not detect a new window / > same > >> >>>> window will be reused > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >>2) ClientSideWindowHandler > >> >>>> >> > >> >>>> >> - Stream our windowhandler > >> >>>> >> > >> >>>> >> - windowhandler.html checks the window.name > >> >>>> >> > >> >>>> >> - if valid -> set cookie and redirect to the same page > >> >>>> >> > >> >>>> >> - if invalid -> remove windowId url param and redirect to > the > >> >>>> same page > >> >>>> >> > >> >>>> >> - overwrites all click events to capturing a screenshot > which > >> >>>> will be displayed for further get requests? > >> >>>> >> > >> >>>> >> - Also appends the windowId to the URL? > >> >>>> >> > >> >>>> >> - The only mode which supports all edge cases > >> >>>> >> > >> >>>> >> > >> >>>> >>3) ServerSideWindowHandler > >> >>>> >> > >> >>>> >> - Stored the windowId via flash-scope on redirect > >> >>>> >> > >> >>>> >> - Also appends the windowId to the URL? > >> >>>> >> - opening a link in a new tab will not detect a new window / > same > >> >>>> window will be reused > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >>DeltaSpike: > >> >>>> >>==================== > >> >>>> >> > >> >>>> >>- WindowIdComponent must be added manually > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >>1) CLIENT_WINDOW: > >> >>>> >> - same as CODIs ClientSideWindowHandler > >> >>>> >> > >> >>>> >>2) LAZY > >> >>>> >> - new mix between DefaultWindowHandler and > >> ClientSideWindowHandler? > >> >>>> >> > >> >>>> >> - renders the URL param but validates the windowID via > >> >>>> windowhandler.js, which will be loaded when the ds:windowId will be > >> added > >> >>>> in the view > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >>3) URL (new) > >> >>>> >> > >> >>>> >> - same as CODIs DefaultWindowHandler > >> >>>> >> > >> >>>> >> > >> >>>> >>4) Delegated > >> >>>> >> > >> >>>> >> - take use of JSF 2.2 > >> >>>> >> > >> >>>> >> > >> >>>> >>Is this right? Please correct me! We can take this as base for > the > >> >>>> documention later. > >> >>>> >> > >> >>>> >> > >> >>>> >>Regards, > >> >>>> >>Thomas > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >>2014/1/10 Mark Struberg <strub...@yahoo.de> > >> >>>> >> > >> >>>> >> > >> >>>> >>> > >> >>>> >>>Hi Thomas! > >> >>>> >>> > >> >>>> >>>Well, it's just a different name ;) > >> >>>> >>> > >> >>>> >>>The default handling in CODI is lazy windowId dropping if you do > >> not > >> >>>> use the ClientSideWindowHandler. > >> >>>> >>>Means a request runs through to the target bean and renders the > >> page. > >> >>>> And the windowId only gets checked/reset when the page gets loaded > by > >> the > >> >>>> browser and the javascript _lazily_ detects that we are on the > wrong > >> >>>> browser tab (windowId != window.name). > >> >>>> >>> > >> >>>> >>> > >> >>>> >>>Transporting the windowId via URL is only a small necessity > >> actually ;) > >> >>>> >>> > >> >>>> >>><ds:windowId> should already contain all the JavaScript needed > for > >> the > >> >>>> lazy dropping. > >> >>>> >>> > >> >>>> >>> > >> >>>> >>>LieGrue, > >> >>>> >>>strub > >> >>>> >>> > >> >>>> >>> > >> >>>> >>> > >> >>>> >>> > >> >>>> >>> > >> >>>> >>>>________________________________ > >> >>>> >>>> From: Thomas Andraschko <andraschko.tho...@gmail.com> > >> >>>> >>>>To: dev@deltaspike.apache.org; Mark Struberg < > strub...@yahoo.de> > >> >>>> >>>>Sent: Friday, 10 January 2014, 10:50 > >> >>>> >>> > >> >>>> >>>>Subject: Re: JSF - default ClientWindowRenderMode? > >> >>>> >>>> > >> >>>> >>>> > >> >>>> >>>> > >> >>>> >>>>As LAZY is currently not used, no documentation available and > the > >> >>>> javadoc said something about "javascript handling on client side", > i > >> >>>> thought it will a different kind of handling in the future. > >> >>>> >>>>What should be difference between URL rendering mode and LAZY? > >> >>>> >>>> > >> >>>> >>>> > >> >>>> >>>> > >> >>>> >>>> > >> >>>> >>>> > >> >>>> >>>> > >> >>>> >>>>2014/1/10 Mark Struberg <strub...@yahoo.de> > >> >>>> >>>> > >> >>>> >>>>The URL rendering mode of CODI is what I intended with LAZY. > >> >>>> >>>>> > >> >>>> >>>>> > >> >>>> >>>>>LieGrue, > >> >>>> >>>>>strub > >> >>>> >>>>> > >> >>>> >>>>> > >> >>>> >>>>> > >> >>>> >>>>> > >> >>>> >>>>>>________________________________ > >> >>>> >>>>>> From: Gerhard Petracek <gerhard.petra...@gmail.com> > >> >>>> >>>>>>To: dev@deltaspike.apache.org > >> >>>> >>>>>>Sent: Friday, 10 January 2014, 9:33 > >> >>>> >>>>>>Subject: Re: JSF - default ClientWindowRenderMode? > >> >>>> >>>>> > >> >>>> >>>>>> > >> >>>> >>>>>> > >> >>>> >>>>>>+1 > >> >>>> >>>>>> > >> >>>> >>>>>>regards, > >> >>>> >>>>>>gerhard > >> >>>> >>>>>> > >> >>>> >>>>>> > >> >>>> >>>>>> > >> >>>> >>>>>> > >> >>>> >>>>>>2014/1/9 Thomas Andraschko <andraschko.tho...@gmail.com> > >> >>>> >>>>>> > >> >>>> >>>>>>> Hi, > >> >>>> >>>>>>> > >> >>>> >>>>>>> currently the default rendering mode is our windowhandler > >> js/html > >> >>>> way. > >> >>>> >>>>>>> Many people don't like it because you always get a loading > >> screen > >> >>>> for EACH > >> >>>> >>>>>>> GET request: > >> >>>> >>>>>>> > >> >>>> >>>>>>> > >> >>>> >>>>>>> > >> >>>> > >> > http://stackoverflow.com/questions/18090603/how-to-disable-loading-screen-of-deltaspike > >> >>>> >>>>>>> https://issues.apache.org/jira/browse/DELTASPIKE-454 > >> >>>> >>>>>>> > >> >>>> >>>>>>> i readded a URL rendering mode in DS like it was in CODI. > >> >>>> >>>>>>> I know that it doesn't cover all cases but it's likely > enough > >> for > >> >>>> the most > >> >>>> >>>>>>> users. > >> >>>> >>>>>>> > >> >>>> >>>>>>> What do you think about making the URL mode as default like > >> it was > >> >>>> in CODI > >> >>>> >>>>>>> before? > >> >>>> >>>>>>> > >> >>>> >>>>>>> Regards, > >> >>>> >>>>>>> Thomas > >> >>>> >>>>>>> > >> >>>> >>>>>> > >> >>>> >>>>>> > >> >>>> >>>>>> > >> >>>> >>>> > >> >>>> >>>> > >> >>>> >>>> > >> >>>> >>> > >> >>>> >> > >> >>>> > > >> >>>> > > >> >>>> > > >> >>>> > >> >>> > >> >>> > >> >>> > >> >> > >> > > >> > > >> > > >> > > > > > > >