[whatwg] asynchronous data providers

Ian Hickson ian at hixie.ch
Fri Apr 17 18:24:57 PDT 2009

On Wed, 31 Dec 2008, Alex Russell wrote:
> As per a discussion with Ian on IRC, several issues jumped out at me 
> when looking over the proposed data provider APIs for the <datagrid> tag 
> (DataGridDataProvider).:
>   * most of the APIs for providing data are synchronous, implying that 
> the entire data set be local or that systems that want to do something 
> smarter must attempt to block (synchronous XHR, e.g.). In the case of 
> some forms of network request, this may not even be possible (e.g., 
> JSON-P requests for x-domain data). Either assumption (local data or 
> blocking network I/O) poses a challenge to efficiently handling very 
> large data sets.
>   * the data provider does not issue requests for rows as a block.
> Instead, it passes an individual rowspec to each call of getCellData.
> This makes it difficult for smart providers to bundle requests for
> data in a particular range (assuming network I/O).
>   * the data provider API expects a "real" answer about how many
> children a row may have (getRowCount(row)), but in the case of a
> deeply nested tree and a lazy-loading data provider, this information
> isn't likley to be available up-front.

I've revamped the way it works, which should address the above. I played 
with a prototype implementation so I know it's possible to do the user 
agent side of things. I plan to write three examples to get more 
experience with the author side of this.

>   * functions seem to be called to provide the results of editing for
> a particular data item (editCell(...)), but no event is thrown on the
> grid to implement custom value editors and it's not clear how to plug
> into the grid to inform it that editing has finished.

Not really sure how to do this. Could you elaborate on what you have in 
mind for making custom editors? I've made it easy for us to add new types 
of columns, so we should be able to change things easily later.

I haven't dealt with selection yet, and fallback for legacy UAs isn't 
properly defined yet. I want to work on some other things first and come 
back to <datagrid> with a fresh perspective in a few weeks, so that I can 
review what I have so far before continuing on to other things.

Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

More information about the whatwg mailing list