We are currently building an application in Wicket (2.0) that has only a
single page: that page contains a border where template markup is defined.
The body of that border is a panel that gets replaced while the user
navigates through the application (something similar to the wizard
implementation in Wicket, but without having created all wizard panels from
the start).

Advantages:
* we use Ajax requestTargets that only replace the changing part of the
page: less flicker, less network traffic.
* as a templating alternative (compared to the extension templating
mechanism), it allows for the body of the template NOT to be an extension of
the template page.
* if the action is limited to an smaller part of the page (f.i. a modal
dialog), same logic applies.

Problems with Wicket:
* the SecondLevelCachePageStore is 'page-oriented': while I remain in the
same page, nothing gets flushed to disk.
* the UndoVersionManager is maintained in the page, and so its changeLists
are using up memory as long as that page is not serialized to disk. I am
aware of the open discussion on refactoring of the pageStore &
versionManager: the 'single-page application' is an extreme case of the
'replace-component' syndrome (cfr.
http://www.nabble.com/refactor-storing-pages-and-versions-tf2943670.html#a8231263).
* since the last change in Wicket 2.0 with 'mergeversion' in the
UndoVersionManager, all Ajax requests are by default considered as candidate
for merging to the actual version i.s.o. creating a new version. This is a
good idea for changes applied to the same page. But in our case, page
navigation is also done through ajax requests, and here we clearly want a
new version for these requests. We solved this problem overwriting the
Request.mergeVersion() method. But we felt that there might be a more
generic need to differenciate between ajax requests that require merging and
ajax requests that require a new version.

Did we take the wrong approach ? Or should Wicket be better prepared to
handle a lot of ajax modifications to the same page ? 


-- 
View this message in context: 
http://www.nabble.com/Single-page-applications%3A-bad-idea-in-Wicket---tf3182341.html#a8831903
Sent from the Wicket - Dev mailing list archive at Nabble.com.

Reply via email to