Grid with semi large local data
Still a fairly new user of both Architect and ExtJS, but I'm hitting a wall regarding local data. I have a 2000 rows structure that I packed as a JS Array (about 400 KB, so some non neglieable amound of data) and autoLoad from an ArrayStore/AjaxProxy created under Architect. My goal being to use that data locally throughout the app, which works pretty good throughout the app, except with a Grid where I need to be able to apply a custom filterFn.
From what I gathered there are two options in ExtJS 4 regarding large grids :
- buffering the store/using infinite scrolling. This gives me kickass performance on the grid side. The drawback is that enabling the required stuff (from this thread http://www.sencha.com/forum/showthread.php?181903) in Architect seems to disable the sorting on my columns. One other drawback is that if I try to apply a filtering on that buffered local store, I only filter a small subset of the data (36 rows).
- paging. I found an example (here, in the download : http://docs.sencha.com/architect/2/#...ples-section-1) called paging-grid which I thought would save me. However, this example relies on remote data (where remote does the page splitting for you). Setting paging size doesn't make the proxy split the data locally it seems. The paging toolbar does the math correctly but I'm just loading the whole thing at every page. So I looked up the doc (http://docs.sencha.com/ext-js/4-1/#!...toolbar.Paging) which mentions doing it with extensions (PagingStore and PagingMemoryProxy). Something that's not really easy to do with Architect it seems.
Now, I'm wondering which approach I should take
Buffered + Filtering seems to get a lot of different answers on the forum (on the non architect part of the boards). This thread (http://www.sencha.com/forum/showthread.php?185483) suggests putting the data client side by using a large leadingBufferZone and purgePageCound to 0. I thought that would do the trick and give me access to the whole set for filtering, but alas, no luck, still filtering those 36 entries. I'm not the only one hitting this issue (http://www.sencha.com/forum/showthread.php?246276) but didn't found any answer. Is this a dead end ? Do I need to do something fancy like filter some other store on the side and swap the store on the grid ?
The paging thing is probably easier to fix. One frustrating thing is that I do see paging in action in buffered + filtering if I set, say, pageSize to 500 or 200. I must be missing something obvious here but didn't find any thread on that topic that went answered.
Thanks to anyone who took the time reading this and for your suggestions.
PS : To the Architect team, this is a surprisingly good IDE. Everything seems to be done the right way which in return gives it a non trivial learning curve (samples and doc only go so far), but one can achieve some pretty cool results once you managed to wrap you head around how you should do things.
Tags for this Thread