mark needs to tell, if the lazy-mode should work already. regards, gerhard
2014/1/10 Thomas Andraschko <andraschko.tho...@gmail.com> > 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 > > >> >>>> >>>>>>> > > >> >>>> >>>>>> > > >> >>>> >>>>>> > > >> >>>> >>>>>> > > >> >>>> >>>> > > >> >>>> >>>> > > >> >>>> >>>> > > >> >>>> >>> > > >> >>>> >> > > >> >>>> > > > >> >>>> > > > >> >>>> > > > >> >>>> > > >> >>> > > >> >>> > > >> >>> > > >> >> > > >> > > > >> > > > >> > > > >> > > > > > > > > > > > >