That List demo is great .. although it seems that the scroller speed might be screen size dependent to some degree -- it seems to be a bit slower on larger screens, and not just due to the volume of stuff on the display, the scrolling action and everything looks fine, it just doesn't scroll as fast.
Who can I bribe into porting this scrolling to Enyo 1? :)
@benluo: Basically, Repeater renders everything at once, while List paginates.
Repeaters are good for small lists, but fall over when the list gets too large (if we had more time, we could probably write a white paper on the interactions of list size and GPU accelerated compositing).
List paginates itself seamlessly so that the actual DOM content should be below the performance-destroying threshold, and therefore allows for an infinitely large list that performs quickly. However, to maintain proper event flows and paginate correctly, Lists have to have consistent and knowable item sizes, while Repeater can have anything inside of it.
Would love to see more debugging on this, @minego. Refresh does three things: invalidate the current HTML content on display, call update with the current scroll position, and then make the scroller superkind stabilize.
Internally, the list keeps two pages, HTML controls that hold part of the visible list content. It has a strategy of keeping one page on screen while having the other one available for scrolling. When you see the list disappear, is your onSetupRow event handler still being called?
Lists definitely seem faster and less glitchy than enyo1 lists on android, but I am comparing a test app with a full app with more complex lists.
Are there plans for the enyo2 lists to support more of the enyo1 list features like acquirePage, swipeableItems and drawers? I know the last two can be implemented with what's already available in enyo2, but it would be nice to not have to write them ourselves.
Also, I've only tested on a CM9 Touchpad and I'm wondering if anyone can tell me if the performance is better on a "real" android tablet.
I would say that on a CM7 touchpad, the performance looks to be quite a bit better than Enyo 1. However, it does appear to be dropping events - multiple rapid swipes move it slower and slower on CM7/Android 2.3, but in webOS and iOS it just flies along at the same speed the whole time (albeit slower on a tablet than on a handheld)
Is the list suppose to work on mobile browsers? I just tested the flyweightRepeater.html example, and I got some strange behavior on an Android device (Samsung Galaxy S II - ICS 4.0.3):
- The default browser: doesn't detect always the row "tap" event, and when is detected, the row index is not correct - Chrome Beta for Android: Works until the 10th row (the first visible ones), when you scroll (11+ row) the tap event stops working
Problems with Chrome for Android are a known issue, but I don't think we have a fix yet. I'm not sure about the row detection issue -- I just fixed one problem last night involving margins between row elements, but I don't think that's what your reporting.
Comments
- Spam
- Abuse
0 • Off Topic Insightful •- Spam
- Abuse
0 • Off Topic Insightful •- Spam
- Abuse
0 • Off Topic Insightful •- Spam
- Abuse
0 • Off Topic Insightful •Who can I bribe into porting this scrolling to Enyo 1? :)
- Spam
- Abuse
0 • Off Topic Insightful •After investigation, it's because n.id is undefined 1 out of 100 times. The while loop shouldn't be iterating, but it is. To fix:
On 115, insert "&& n.id" to the while loop. (sans quotes)
- Spam
- Abuse
0 • Off Topic Insightful •- Spam
- Abuse
0 • Off Topic Insightful •Repeaters are good for small lists, but fall over when the list gets too large (if we had more time, we could probably write a white paper on the interactions of list size and GPU accelerated compositing).
List paginates itself seamlessly so that the actual DOM content should be below the performance-destroying threshold, and therefore allows for an infinitely large list that performs quickly. However, to maintain proper event flows and paginate correctly, Lists have to have consistent and knowable item sizes, while Repeater can have anything inside of it.
Hope that sheds some light there.
- Spam
- Abuse
0 • Off Topic Insightful •- Spam
- Abuse
0 • Off Topic Insightful •- Spam
- Abuse
0 • Off Topic Insightful •Internally, the list keeps two pages, HTML controls that hold part of the visible list content. It has a strategy of keeping one page on screen while having the other one available for scrolling. When you see the list disappear, is your onSetupRow event handler still being called?
- Spam
- Abuse
0 • Off Topic Insightful •Are there plans for the enyo2 lists to support more of the enyo1 list features like acquirePage, swipeableItems and drawers? I know the last two can be implemented with what's already available in enyo2, but it would be nice to not have to write them ourselves.
Also, I've only tested on a CM9 Touchpad and I'm wondering if anyone can tell me if the performance is better on a "real" android tablet.
- Spam
- Abuse
0 • Off Topic Insightful •- Spam
- Abuse
0 • Off Topic Insightful •Is the list suppose to work on mobile browsers? I just tested the flyweightRepeater.html example, and I got some strange behavior on an Android device (Samsung Galaxy S II - ICS 4.0.3):
- The default browser: doesn't detect always the row "tap" event, and when is detected, the row index is not correct
- Chrome Beta for Android: Works until the 10th row (the first visible ones), when you scroll (11+ row) the tap event stops working
Any ideas?
Thanks,
- Spam
- Abuse
0 • Off Topic Insightful •I have filed this in our bug system as https://github.com/enyojs/layout/issues/3 and https://github.com/enyojs/layout/issues/4.
- Spam
- Abuse
0 • Off Topic Insightful •Thanks, I'll pull the latest changes and try again
- Spam
- Abuse
0 • Off Topic Insightful •- Spam
- Abuse
0 • Off Topic Insightful •