Clusterize.js – Tiny plugin to display large data sets easily
nexts.github.io
nexts.github.io
You may test it at playground. By default there are 1000 rows, you could even increase it by hitting "Append" button, then click destroy method "Insert all rows to the table" button. After that you will be able to init plugin again. It'll allow you to compare the difference.
With this enabled scrolling is calculated in its own thread which makes Firefox insanely smooth now, so I doubt I'd notice a difference even if it were 50000. I recommend everyone gives it a try, it's a big deal.
That will be enabled in stable soon I believe.
At the same time it puts the browser makers to shame.
If it's so relatively easy to make large tables fast with a small javascript hack then why isn't this optimization baked into browsers already?
I'm using Chrome 42.0.2311.135 (64-bit) on a MacBook Pro with OS X 10.9.5.
You can just stop the scroll event from propagating in the case that there's more rows to scroll through.
Kudos for that!
Compare Clusterize.js [1], whose complete implementation fits in less than 250 LOC, to Ember List View [2], mentioned by someone here: ~800 LOC Just for a Mixin (whatever the hell that is).
Now, try to estimate how long would it take you to understand and fix a bug or add a feature to Clusterize, and how long would it take to do the same thing with list-view.
1: https://github.com/NeXTs/Clusterize.js/blob/master/clusteriz...
2: https://github.com/emberjs/list-view/blob/master/addon/list-...
https://github.com/jakubroztocil/cloudtunes/blob/master/clou...
[0]: http://enyojs.com/sampler/latest/ (Layout -> List -> Basic List)
'Doesn't it?'
Excellent work BTW.
Not applicable everywhere, but for certain applications (near-) infinite scrolling is extremely popular with the target users.
Spreadsheets? At least I hate scrolling through them. I would rather prefer seeing the thing I am interested in at the very top instead of manually searching for it. That is of course a tough problem, designing a good spreadsheet as well as offering good tools to do this or ease navigating. The same for business application. No one likes scrolling through endless lists to find the relevant things but business applications almost universally suck at it is often your only option.
You've hit on the exact point. If you've ever watched a heavy pinterest user browse pinterest or other pinterest-styled shopping sites -- they look at EVERYTHING. Just infinitely scrolling for hours after hours, skimming every single item until they hit the end of a collection. Occasionally opening items in a new background tab.
Probably that's where this UI works best, for apps where the person is going to look at many thousands of items, and no ranking exists that can do a decent job, for the particular user's needs other than at a rough level. Women's fashion shopping (e.g. pinterest and shopping clones of pinterest) seem to be an ideal example of that.
By the way, fashion is an interesting example of being anti-ranking. If something gets too popular, it suddenly becomes unfasionable again by the rules of fashion.