Hi there,

I have a ScrollPanel wrapped around a FlexTable. When the end of the
FlexTable is reached, new Items are loaded from the server.

My Problem: when the end of the currently available list is reached,
onScroll() triggers a RPC-request, which calls a Servlet, which
returns more results (adds them to the table etc.). For some reason
this RPC-request is called TWICE in IE, while only being called once
in Firefox - which is the correct behavior.

I've ensured that the ScrollPanel is created only once and that it
adds the ScrollHandler only once (addScrollHandler is called only
once!). I am totally puzzled as to why it makes the RPC-call twice...

http://gyazo.com/3e9765027df79287d0c0b52f303fc2d7.png (resulting
table, displayed in IE8)
http://gyazo.com/ed319e73e2816034bb35cc7c43ef8858.png (resulting
table, displayed in FF)

Some rows are there twice, because they aren't totally equal
(different char-...). However: as you can see in the IE8 screenshot
the "animal bone" item is ABSOLUTELY the same - which is wrong
behavior. In Firefox you can see, that there is only one "animal bone"
item which belongs to char268472623.

In the console window I can see that IE triggers the RPC twice. I
tried to check inside the RPC-request if it is called again or not,
but it seems that these calls are made at the same time - so one
doesn't know the other one is made.

I've tried to make a small example. I created a new project, which
contained an EntryPoint, a ScrollPanel, a FlexTable and a
ScrollHandler. However: this example did work flawlessly.

Please help me fix this - I'll post any code you need.

Here's what my onScroll-method looks like:
        public void onScroll(ScrollEvent event) {
                //System.out.println("scrolling...");
                //System.out.println("itemScroller: " +
(itemScroller.getScrollPosition() + itemScroller.getOffsetHeight()));
                //System.out.println("itemTable: " + 
itemTable.getOffsetHeight());
                if (itemScroller.getScrollPosition() +
itemScroller.getOffsetHeight() > itemTable.getOffsetHeight()) {
                        //System.out.println("triggered!");
                        loadCharacterItems(DataKeeper.getItemsCount(), 15);
                }
        }

I left the System.out.println-stuff there so you can see what I
already tried to compare. Here's what those System.out.println()-calls
produce:

// IE8
scrolling...
itemScroller: 411
itemTable: 746
scrolling...
itemScroller: 427
itemTable: 746
scrolling...
itemScroller: 444
itemTable: 746
scrolling...
itemScroller: 461
itemTable: 746
scrolling...
itemScroller: 461
itemTable: 746
scrolling...
itemScroller: 471
itemTable: 746
scrolling...
itemScroller: 487
itemTable: 746
scrolling...
itemScroller: 504
itemTable: 746
scrolling...
itemScroller: 521
itemTable: 746
scrolling...
itemScroller: 521
itemTable: 746
scrolling...
itemScroller: 604
itemTable: 746
scrolling...
itemScroller: 683
itemTable: 746
scrolling...
itemScroller: 747
itemTable: 746
triggered!
scrolling...
itemScroller: 747
itemTable: 746
triggered!
200 - POST /odrop/RPCBelongingsService (192.168.56.1) 721 bytes
200 - POST /odrop/RPCBelongingsService (192.168.56.1) 721 bytes

// FF
scrolling...
itemScroller: 455
itemTable: 506
scrolling...
itemScroller: 507
itemTable: 506
triggered!
200 - POST /odrop/RPCBelongingsService (192.168.56.1) 721 bytes

Any help is greatly appreciated! Thank you very much for your time in
advance.
Igor.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to