You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Dan Retzlaff <dr...@gmail.com> on 2012/03/01 05:46:22 UTC

Re: Multi Tab and Session

I reproduced part of your setup with the attached quickstart whose homepage
updates a single label with an AjaxSelfUpdatingTimerBehavior. Reloading a
page in a second tab (including its version number in the URL) causes
subsequent requests to the first tab to be considered "stale" based on a
page render count. This stops the AJAX updates. So Andre, when you load
Page1 in Tab2, does your request include the page ID from Tab1?

If this isn't the case, then please share a quickstart of your own. Despite
your detailed description I'm not sure I'm reproducing your steps exactly.

Regarding multiple constructor calls, are you using Chrome 17 or greater?
It introduces some funky prerendering business that can cause multiple
requests/constructions when you'd otherwise expect one. I just learned this
today. Typing "localhost:8080" into address bar is enough to make the
request, even without hitting enter. Hitting enter causes another request
to be made, but it appears it is the first response that is rendered (based
on the page ID in the URL). Interesting.
http://code.google.com/chrome/whitepapers/prerender.html

Dan

2012/2/29 Andre Sch�tz <an...@gmx.de>

> Hi,
>
> I could identify the cause of the problem, but still have no
> solution.
>
> I set some breakpoints and made some output messages to trace
> the system. The following thinks happened:
>
> (1)
> I submit a search in Tab1. The search word will be passed as
> Page Parameter to Page2 in Tab1. While Tab1 is showing the loading
> animation with it AjaxSelfUpdatingTimerBehavior, I submit a second
> search in Tab2. Tab2 switches to its Page2 and the loading animation
> stops in both Tabs.
>
> Reason:
> --> The constructors of Page2 is called twice on the two Tabs.
>
> As diagram:
> 01.) Tab1: Page1 submit search
> 02.) Tab1: Page2 (Page id = 14) calls its constructor and adds a PanelA
> 03.) Tab1: shows loading animation with its AjaxSelfUpdatingTimerBehavior
> at PanelA
> 04.) Tab2: Page1 submit search
> 05.) Tab2: Page2 (Page id = 16) calls its constructor and adds a PanelA
> 06.) Tab2: shows loading animation with its AjaxSelfUpdatingTimerBehavior
> at PanelA
> 07.) Tab1: Page2 (Page id = 17) calls its constructor
> 08.) Tab1: does not update anymore
> 09.) Tab2: Page2 (Page id = 18) calls its constructor
> 10.) Tab2: does not update anymore
>
> I do nothing from the beginning of step 7 and do not know why the
> constructor
> is called again.
>
> (2)
> The same odd behavior happens, when I do the following. I submit a search
> in Tab1 from its Page1. While the loading animation is shown, I reload the
> Page1 in Tab2. The constructor of Page2 in Tab1 is called again and the
> Page2 in Tab1 stops its update progress.
>
> As diagram:
> 01.) Tab1: Page1 submit search
> 02.) Tab1: Page2 (Page id = 22) calls its constructor and adds a PanelA
> 03.) Tab1: shows loading animation with its AjaxSelfUpdatingTimerBehavior
> at PanelA
> 04.) Tab2: Reload any Page
> 05.) Tab1: Page2 (Page id = 23) calls its constructor
> 06.) Tab1: does not update anymore
>
>
> I really can't explain to myself, why the constructor is called again. But
> I think
> that this second call in the individual Tabs is crashing my application.
> Any ideas about this odd behavior?
>
> Thank in advance,
> Andre
>
>
> On Wed, 29 Feb 2012 10:10:37 -0800
> Dan Retzlaff <dr...@gmail.com> wrote:
>
> > Your description is clear, thank you. I'm not certain that the background
> > thread's reference to the Session is valid outside of the servlet
> request.
> > I would verify your assumption by logging the session's object ID when
> the
> > value is read/written.
> >
> > I have one other thought for you. I believe Wicket keeps the most recent
> > page in a deserialized state to save itself the work of deserialization
> in
> > the common case of it being required by the next request. (I think the
> > logic is in PageStoreManager, but it's not clear to me. Hopefully a dev
> can
> > confirm/correct me.) At any rate, this may cause the difference between
> > your two scenarios. In your successful, single-tab scenario, you may be
> > benefiting from a lack of serialization/deserialization round-trip. We
> have
> > noticed this difference when our components have transient variables that
> > aren't set to null in detach(): in the most recent page the variable
> > remains not-null; if the session has intermediate requests for other
> pages,
> > the variable is null when next accessed.
> >
> > Good luck,
> > Dan
> >
> > 2012/2/29 "Andr� Sch�tz" <An...@gmx.de>
> >
> > > Hi,
> > >
> > > Page1 gets the click of the submit button and collects the search word.
> > > This will be changed into a hash value and set as PageParameter
> > > (q=Hashvalue) to the ResponsePage which is Page2.
> > > Additionally, I store the hash value into a session HashMap which holds
> > > the hash value as key and an own class with the original search word.
> This
> > > class will be filled with the results from the search of the background
> > > thread.
> > >
> > > On Page2, I have the PageParameter as hash value and can search for the
> > > correct entry of the HashMap in the session to react, when the results
> are
> > > found.
> > >
> > > I hope, I could describe it.
> > >
> > > Andre
> > >
> > > -------- Original-Nachricht --------
> > > > Datum: Tue, 28 Feb 2012 14:27:35 -0800
> > > > Von: Dan Retzlaff <dr...@gmail.com>
> > > > An: users@wicket.apache.org
> > > > Betreff: Re: Multi Tab and Session
> > >
> > > > Hi Andre. I'm trying to understand your setup. A quickstart may be
> > > > required.
> > > >
> > > > What does your Page1's onSubmit() look like? Specifically I'd like to
> > > know
> > > > how Page2 knows to watch for "word2".
> > > >
> > > > 2012/2/28 Andre Sch�tz <an...@gmx.de>
> > > >
> > > > > Hello,
> > > > >
> > > > > I have a problem with my application that I am not able to solve
> since
> > > > >  the last three days.
> > > > >
> > > > > I realized that Wicket 1.5 provides multi tab / multi window
> support
> > > > > for more than one opened tab in a browser.
> > > > > I have a problem with multiple tabs in my program, that I want to
> > > > > describe now.
> > > > >
> > > > > The program consists of two pages. Page1 contains a search field
> that
> > > > > will be used to type in a search word.
> > > > > Page2 makes the search on a database, returns the results and
> > > > > displays it as a list. The search will be done from a background
> > > > > thread that stores the result in a hashmap in the session with the
> > > > > search word as the key. Furthermore, Page2 shows a little loading
> > > > > animation that will be updated (AjaxSelfUpdatingTimerBehavior),
> when
> > > the
> > > > > result is stored in the session.
> > > > >
> > > > > Now the problem.
> > > > >
> > > > > (1) I open the application in two tabs of the same browser.
> > > > > (2) The URL looks as follows:
> > > > > Tab1 - localhost:8080/appli/?0
> > > > > Tab2 - localhost:8080/appli/?1
> > > > > (3) Tab1 gets word1 in the search field and Tab2 gets word2
> > > > > into the search field.
> > > > > (4) I press the submit button of Tab1, switch to Tab2 and press the
> > > > > submit button, too.
> > > > > (5) The two Threads start to search for the results.
> > > > > (6) During the AjaxSelfUpdatingTimeBehavior, the result panel of
> Page2
> > > > > checks
> > > > > in its overwritten onBeforeRender method for the results. When the
> > > > result
> > > > > for the search word is found in the session, the updateBehavior of
> > > Page2
> > > > > is stopped and the results will be displayed.
> > > > > -> Here starts my problem:
> > > > >
> > > > > None of the two pages will be updated and show the results. If I
> start
> > > > > the search in one of the Tabs, the process will be finished and the
> > > > > results displayed onto the screen.
> > > > >
> > > > > For me, it seems that both tabs share the same session data and
> also
> > > > > the same updateBehavior on the Page2.
> > > > >
> > > > > Can anybody help me with that problem? Would be great.
> > > > >
> > > > > --
> > > > > Andre Sch�tz <sc...@gmx.net>
> > > > >
> > > > >
> ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > > > For additional commands, e-mail: users-help@wicket.apache.org
> > > > >
> > > > >
> > >
> > > --
> > > Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
> > > belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > For additional commands, e-mail: users-help@wicket.apache.org
> > >
> > >
>
>
> --
> Andre Sch�tz <sc...@gmx.net>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Multi Tab and Session

Posted by Andre Schütz <an...@gmx.de>.
Hi Dan,

I made an output of the PageIDs and got the following result:

When I reload Page1 in Tab2, the page id is different from the
page id of Page2 in Tab1. Additionally, this reload of Tab1 while
making a reload of Tab2 occurs in any browser. Tested it with 
Opera, Firefox and IE.

Andre

On Wed, 29 Feb 2012 20:46:22 -0800
Dan Retzlaff <dr...@gmail.com> wrote:

> I reproduced part of your setup with the attached quickstart whose homepage
> updates a single label with an AjaxSelfUpdatingTimerBehavior. Reloading a
> page in a second tab (including its version number in the URL) causes
> subsequent requests to the first tab to be considered "stale" based on a
> page render count. This stops the AJAX updates. So Andre, when you load
> Page1 in Tab2, does your request include the page ID from Tab1?
> 
> If this isn't the case, then please share a quickstart of your own. Despite
> your detailed description I'm not sure I'm reproducing your steps exactly.
> 
> Regarding multiple constructor calls, are you using Chrome 17 or greater?
> It introduces some funky prerendering business that can cause multiple
> requests/constructions when you'd otherwise expect one. I just learned this
> today. Typing "localhost:8080" into address bar is enough to make the
> request, even without hitting enter. Hitting enter causes another request
> to be made, but it appears it is the first response that is rendered (based
> on the page ID in the URL). Interesting.
> http://code.google.com/chrome/whitepapers/prerender.html
> 
> Dan
> 
> 2012/2/29 Andre Schütz <an...@gmx.de>
> 
> > Hi,
> >
> > I could identify the cause of the problem, but still have no
> > solution.
> >
> > I set some breakpoints and made some output messages to trace
> > the system. The following thinks happened:
> >
> > (1)
> > I submit a search in Tab1. The search word will be passed as
> > Page Parameter to Page2 in Tab1. While Tab1 is showing the loading
> > animation with it AjaxSelfUpdatingTimerBehavior, I submit a second
> > search in Tab2. Tab2 switches to its Page2 and the loading animation
> > stops in both Tabs.
> >
> > Reason:
> > --> The constructors of Page2 is called twice on the two Tabs.
> >
> > As diagram:
> > 01.) Tab1: Page1 submit search
> > 02.) Tab1: Page2 (Page id = 14) calls its constructor and adds a PanelA
> > 03.) Tab1: shows loading animation with its AjaxSelfUpdatingTimerBehavior
> > at PanelA
> > 04.) Tab2: Page1 submit search
> > 05.) Tab2: Page2 (Page id = 16) calls its constructor and adds a PanelA
> > 06.) Tab2: shows loading animation with its AjaxSelfUpdatingTimerBehavior
> > at PanelA
> > 07.) Tab1: Page2 (Page id = 17) calls its constructor
> > 08.) Tab1: does not update anymore
> > 09.) Tab2: Page2 (Page id = 18) calls its constructor
> > 10.) Tab2: does not update anymore
> >
> > I do nothing from the beginning of step 7 and do not know why the
> > constructor
> > is called again.
> >
> > (2)
> > The same odd behavior happens, when I do the following. I submit a search
> > in Tab1 from its Page1. While the loading animation is shown, I reload the
> > Page1 in Tab2. The constructor of Page2 in Tab1 is called again and the
> > Page2 in Tab1 stops its update progress.
> >
> > As diagram:
> > 01.) Tab1: Page1 submit search
> > 02.) Tab1: Page2 (Page id = 22) calls its constructor and adds a PanelA
> > 03.) Tab1: shows loading animation with its AjaxSelfUpdatingTimerBehavior
> > at PanelA
> > 04.) Tab2: Reload any Page
> > 05.) Tab1: Page2 (Page id = 23) calls its constructor
> > 06.) Tab1: does not update anymore
> >
> >
> > I really can't explain to myself, why the constructor is called again. But
> > I think
> > that this second call in the individual Tabs is crashing my application.
> > Any ideas about this odd behavior?
> >
> > Thank in advance,
> > Andre
> >
> >
> > On Wed, 29 Feb 2012 10:10:37 -0800
> > Dan Retzlaff <dr...@gmail.com> wrote:
> >
> > > Your description is clear, thank you. I'm not certain that the background
> > > thread's reference to the Session is valid outside of the servlet
> > request.
> > > I would verify your assumption by logging the session's object ID when
> > the
> > > value is read/written.
> > >
> > > I have one other thought for you. I believe Wicket keeps the most recent
> > > page in a deserialized state to save itself the work of deserialization
> > in
> > > the common case of it being required by the next request. (I think the
> > > logic is in PageStoreManager, but it's not clear to me. Hopefully a dev
> > can
> > > confirm/correct me.) At any rate, this may cause the difference between
> > > your two scenarios. In your successful, single-tab scenario, you may be
> > > benefiting from a lack of serialization/deserialization round-trip. We
> > have
> > > noticed this difference when our components have transient variables that
> > > aren't set to null in detach(): in the most recent page the variable
> > > remains not-null; if the session has intermediate requests for other
> > pages,
> > > the variable is null when next accessed.
> > >
> > > Good luck,
> > > Dan
> > >
> > > 2012/2/29 "André Schütz" <An...@gmx.de>
> > >
> > > > Hi,
> > > >
> > > > Page1 gets the click of the submit button and collects the search word.
> > > > This will be changed into a hash value and set as PageParameter
> > > > (q=Hashvalue) to the ResponsePage which is Page2.
> > > > Additionally, I store the hash value into a session HashMap which holds
> > > > the hash value as key and an own class with the original search word.
> > This
> > > > class will be filled with the results from the search of the background
> > > > thread.
> > > >
> > > > On Page2, I have the PageParameter as hash value and can search for the
> > > > correct entry of the HashMap in the session to react, when the results
> > are
> > > > found.
> > > >
> > > > I hope, I could describe it.
> > > >
> > > > Andre
> > > >
> > > > -------- Original-Nachricht --------
> > > > > Datum: Tue, 28 Feb 2012 14:27:35 -0800
> > > > > Von: Dan Retzlaff <dr...@gmail.com>
> > > > > An: users@wicket.apache.org
> > > > > Betreff: Re: Multi Tab and Session
> > > >
> > > > > Hi Andre. I'm trying to understand your setup. A quickstart may be
> > > > > required.
> > > > >
> > > > > What does your Page1's onSubmit() look like? Specifically I'd like to
> > > > know
> > > > > how Page2 knows to watch for "word2".
> > > > >
> > > > > 2012/2/28 Andre Schütz <an...@gmx.de>
> > > > >
> > > > > > Hello,
> > > > > >
> > > > > > I have a problem with my application that I am not able to solve
> > since
> > > > > >  the last three days.
> > > > > >
> > > > > > I realized that Wicket 1.5 provides multi tab / multi window
> > support
> > > > > > for more than one opened tab in a browser.
> > > > > > I have a problem with multiple tabs in my program, that I want to
> > > > > > describe now.
> > > > > >
> > > > > > The program consists of two pages. Page1 contains a search field
> > that
> > > > > > will be used to type in a search word.
> > > > > > Page2 makes the search on a database, returns the results and
> > > > > > displays it as a list. The search will be done from a background
> > > > > > thread that stores the result in a hashmap in the session with the
> > > > > > search word as the key. Furthermore, Page2 shows a little loading
> > > > > > animation that will be updated (AjaxSelfUpdatingTimerBehavior),
> > when
> > > > the
> > > > > > result is stored in the session.
> > > > > >
> > > > > > Now the problem.
> > > > > >
> > > > > > (1) I open the application in two tabs of the same browser.
> > > > > > (2) The URL looks as follows:
> > > > > > Tab1 - localhost:8080/appli/?0
> > > > > > Tab2 - localhost:8080/appli/?1
> > > > > > (3) Tab1 gets word1 in the search field and Tab2 gets word2
> > > > > > into the search field.
> > > > > > (4) I press the submit button of Tab1, switch to Tab2 and press the
> > > > > > submit button, too.
> > > > > > (5) The two Threads start to search for the results.
> > > > > > (6) During the AjaxSelfUpdatingTimeBehavior, the result panel of
> > Page2
> > > > > > checks
> > > > > > in its overwritten onBeforeRender method for the results. When the
> > > > > result
> > > > > > for the search word is found in the session, the updateBehavior of
> > > > Page2
> > > > > > is stopped and the results will be displayed.
> > > > > > -> Here starts my problem:
> > > > > >
> > > > > > None of the two pages will be updated and show the results. If I
> > start
> > > > > > the search in one of the Tabs, the process will be finished and the
> > > > > > results displayed onto the screen.
> > > > > >
> > > > > > For me, it seems that both tabs share the same session data and
> > also
> > > > > > the same updateBehavior on the Page2.
> > > > > >
> > > > > > Can anybody help me with that problem? Would be great.
> > > > > >
> > > > > > --
> > > > > > Andre Schütz <sc...@gmx.net>
> > > > > >
> > > > > >
> > ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > > > > For additional commands, e-mail: users-help@wicket.apache.org
> > > > > >
> > > > > >
> > > >
> > > > --
> > > > Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
> > > > belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > > For additional commands, e-mail: users-help@wicket.apache.org
> > > >
> > > >
> >
> >
> > --
> > Andre Schütz <sc...@gmx.net>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > For additional commands, e-mail: users-help@wicket.apache.org
> >
> >


-- 
Andre Schütz <sc...@gmx.net>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Multi Tab and Session

Posted by André Schütz <An...@gmx.de>.
Hi,

I will check, which page ID is in the request and test your quickstart, when I am back home this evening. Thanks for the advice.
I will share my results after the tests.

Andre

-------- Original-Nachricht --------
> Datum: Wed, 29 Feb 2012 20:46:22 -0800
> Von: Dan Retzlaff <dr...@gmail.com>
> An: users@wicket.apache.org
> Betreff: Re: Multi Tab and Session

> I reproduced part of your setup with the attached quickstart whose
> homepage
> updates a single label with an AjaxSelfUpdatingTimerBehavior. Reloading a
> page in a second tab (including its version number in the URL) causes
> subsequent requests to the first tab to be considered "stale" based on a
> page render count. This stops the AJAX updates. So Andre, when you load
> Page1 in Tab2, does your request include the page ID from Tab1?
> 
> If this isn't the case, then please share a quickstart of your own.
> Despite
> your detailed description I'm not sure I'm reproducing your steps exactly.
> 
> Regarding multiple constructor calls, are you using Chrome 17 or greater?
> It introduces some funky prerendering business that can cause multiple
> requests/constructions when you'd otherwise expect one. I just learned
> this
> today. Typing "localhost:8080" into address bar is enough to make the
> request, even without hitting enter. Hitting enter causes another request
> to be made, but it appears it is the first response that is rendered
> (based
> on the page ID in the URL). Interesting.
> http://code.google.com/chrome/whitepapers/prerender.html
> 
> Dan
> 
> 2012/2/29 Andre Schütz <an...@gmx.de>
> 
> > Hi,
> >
> > I could identify the cause of the problem, but still have no
> > solution.
> >
> > I set some breakpoints and made some output messages to trace
> > the system. The following thinks happened:
> >
> > (1)
> > I submit a search in Tab1. The search word will be passed as
> > Page Parameter to Page2 in Tab1. While Tab1 is showing the loading
> > animation with it AjaxSelfUpdatingTimerBehavior, I submit a second
> > search in Tab2. Tab2 switches to its Page2 and the loading animation
> > stops in both Tabs.
> >
> > Reason:
> > --> The constructors of Page2 is called twice on the two Tabs.
> >
> > As diagram:
> > 01.) Tab1: Page1 submit search
> > 02.) Tab1: Page2 (Page id = 14) calls its constructor and adds a PanelA
> > 03.) Tab1: shows loading animation with its
> AjaxSelfUpdatingTimerBehavior
> > at PanelA
> > 04.) Tab2: Page1 submit search
> > 05.) Tab2: Page2 (Page id = 16) calls its constructor and adds a PanelA
> > 06.) Tab2: shows loading animation with its
> AjaxSelfUpdatingTimerBehavior
> > at PanelA
> > 07.) Tab1: Page2 (Page id = 17) calls its constructor
> > 08.) Tab1: does not update anymore
> > 09.) Tab2: Page2 (Page id = 18) calls its constructor
> > 10.) Tab2: does not update anymore
> >
> > I do nothing from the beginning of step 7 and do not know why the
> > constructor
> > is called again.
> >
> > (2)
> > The same odd behavior happens, when I do the following. I submit a
> search
> > in Tab1 from its Page1. While the loading animation is shown, I reload
> the
> > Page1 in Tab2. The constructor of Page2 in Tab1 is called again and the
> > Page2 in Tab1 stops its update progress.
> >
> > As diagram:
> > 01.) Tab1: Page1 submit search
> > 02.) Tab1: Page2 (Page id = 22) calls its constructor and adds a PanelA
> > 03.) Tab1: shows loading animation with its
> AjaxSelfUpdatingTimerBehavior
> > at PanelA
> > 04.) Tab2: Reload any Page
> > 05.) Tab1: Page2 (Page id = 23) calls its constructor
> > 06.) Tab1: does not update anymore
> >
> >
> > I really can't explain to myself, why the constructor is called again.
> But
> > I think
> > that this second call in the individual Tabs is crashing my application.
> > Any ideas about this odd behavior?
> >
> > Thank in advance,
> > Andre
> >
> >
> > On Wed, 29 Feb 2012 10:10:37 -0800
> > Dan Retzlaff <dr...@gmail.com> wrote:
> >
> > > Your description is clear, thank you. I'm not certain that the
> background
> > > thread's reference to the Session is valid outside of the servlet
> > request.
> > > I would verify your assumption by logging the session's object ID when
> > the
> > > value is read/written.
> > >
> > > I have one other thought for you. I believe Wicket keeps the most
> recent
> > > page in a deserialized state to save itself the work of
> deserialization
> > in
> > > the common case of it being required by the next request. (I think the
> > > logic is in PageStoreManager, but it's not clear to me. Hopefully a
> dev
> > can
> > > confirm/correct me.) At any rate, this may cause the difference
> between
> > > your two scenarios. In your successful, single-tab scenario, you may
> be
> > > benefiting from a lack of serialization/deserialization round-trip. We
> > have
> > > noticed this difference when our components have transient variables
> that
> > > aren't set to null in detach(): in the most recent page the variable
> > > remains not-null; if the session has intermediate requests for other
> > pages,
> > > the variable is null when next accessed.
> > >
> > > Good luck,
> > > Dan
> > >
> > > 2012/2/29 "André Schütz" <An...@gmx.de>
> > >
> > > > Hi,
> > > >
> > > > Page1 gets the click of the submit button and collects the search
> word.
> > > > This will be changed into a hash value and set as PageParameter
> > > > (q=Hashvalue) to the ResponsePage which is Page2.
> > > > Additionally, I store the hash value into a session HashMap which
> holds
> > > > the hash value as key and an own class with the original search
> word.
> > This
> > > > class will be filled with the results from the search of the
> background
> > > > thread.
> > > >
> > > > On Page2, I have the PageParameter as hash value and can search for
> the
> > > > correct entry of the HashMap in the session to react, when the
> results
> > are
> > > > found.
> > > >
> > > > I hope, I could describe it.
> > > >
> > > > Andre
> > > >
> > > > -------- Original-Nachricht --------
> > > > > Datum: Tue, 28 Feb 2012 14:27:35 -0800
> > > > > Von: Dan Retzlaff <dr...@gmail.com>
> > > > > An: users@wicket.apache.org
> > > > > Betreff: Re: Multi Tab and Session
> > > >
> > > > > Hi Andre. I'm trying to understand your setup. A quickstart may be
> > > > > required.
> > > > >
> > > > > What does your Page1's onSubmit() look like? Specifically I'd like
> to
> > > > know
> > > > > how Page2 knows to watch for "word2".
> > > > >
> > > > > 2012/2/28 Andre Schütz <an...@gmx.de>
> > > > >
> > > > > > Hello,
> > > > > >
> > > > > > I have a problem with my application that I am not able to solve
> > since
> > > > > >  the last three days.
> > > > > >
> > > > > > I realized that Wicket 1.5 provides multi tab / multi window
> > support
> > > > > > for more than one opened tab in a browser.
> > > > > > I have a problem with multiple tabs in my program, that I want
> to
> > > > > > describe now.
> > > > > >
> > > > > > The program consists of two pages. Page1 contains a search field
> > that
> > > > > > will be used to type in a search word.
> > > > > > Page2 makes the search on a database, returns the results and
> > > > > > displays it as a list. The search will be done from a background
> > > > > > thread that stores the result in a hashmap in the session with
> the
> > > > > > search word as the key. Furthermore, Page2 shows a little
> loading
> > > > > > animation that will be updated (AjaxSelfUpdatingTimerBehavior),
> > when
> > > > the
> > > > > > result is stored in the session.
> > > > > >
> > > > > > Now the problem.
> > > > > >
> > > > > > (1) I open the application in two tabs of the same browser.
> > > > > > (2) The URL looks as follows:
> > > > > > Tab1 - localhost:8080/appli/?0
> > > > > > Tab2 - localhost:8080/appli/?1
> > > > > > (3) Tab1 gets word1 in the search field and Tab2 gets word2
> > > > > > into the search field.
> > > > > > (4) I press the submit button of Tab1, switch to Tab2 and press
> the
> > > > > > submit button, too.
> > > > > > (5) The two Threads start to search for the results.
> > > > > > (6) During the AjaxSelfUpdatingTimeBehavior, the result panel of
> > Page2
> > > > > > checks
> > > > > > in its overwritten onBeforeRender method for the results. When
> the
> > > > > result
> > > > > > for the search word is found in the session, the updateBehavior
> of
> > > > Page2
> > > > > > is stopped and the results will be displayed.
> > > > > > -> Here starts my problem:
> > > > > >
> > > > > > None of the two pages will be updated and show the results. If I
> > start
> > > > > > the search in one of the Tabs, the process will be finished and
> the
> > > > > > results displayed onto the screen.
> > > > > >
> > > > > > For me, it seems that both tabs share the same session data and
> > also
> > > > > > the same updateBehavior on the Page2.
> > > > > >
> > > > > > Can anybody help me with that problem? Would be great.
> > > > > >
> > > > > > --
> > > > > > Andre Schütz <sc...@gmx.net>
> > > > > >
> > > > > >
> > ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > > > > For additional commands, e-mail: users-help@wicket.apache.org
> > > > > >
> > > > > >
> > > >
> > > > --
> > > > Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
> > > > belohnen Sie mit bis zu 50,- Euro!
> https://freundschaftswerbung.gmx.de
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > > For additional commands, e-mail: users-help@wicket.apache.org
> > > >
> > > >
> >
> >
> > --
> > Andre Schütz <sc...@gmx.net>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > For additional commands, e-mail: users-help@wicket.apache.org
> >
> >

-- 
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org