Scrolling & live stuff (was Re: [Seaside] Re: [ShoreComponents] WebTree, SVG demo and dynamic files)

radoslav hodnicak rh at
Sat Jul 16 20:01:20 CEST 2005

On Fri, 15 Jul 2005, [ISO-8859-2] Jan B. Krejèí wrote:
>>> 3) a decorator allowing to preserve page scrolling coordinates between
>>> submits, so if you have scrolled 5 feet down to find the button you
>>> want to click, you will see the same page location after the response
>>> is loaded from server. I saw this in .NET and I like it very much.

Ok I created such decoration today. The code is trivial. It

1) uses onUnload handler to invoke xmlHttpRequest which saves the scroll 
2) uses those saved coordinates in onLoad handler next time the component 
is displayed

However, there are two issues.

I have found no way to make this decoration "fork safe". The typical use 
is like this

page 1: ScrollDecoration + Component A

component A calls component B, decoration saves coordinates

page 2: Component B

B answers

page 3: ScrollDecoration + Component A, decoration restores coordinates

So if you fork page 1, and call component B from each, only the scroll 
coordinates for the last one are saved. Backtracking doesn't help here 
because on page 3 we don't go back, we display the old components in new 

The second issue is related to publishing this decoration. It simply 
doesn't work with the liveUpdate script that comes with seaside, because 
the script can't handle requests that return empty/no answer. In fact the 
script is too simplistic to handle most of the interesting stuff you might 
want to do with background requests.

Avi? Julian? This area needs attention.


More information about the Seaside mailing list