Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DOMException when initializing dgrid with JsonRest store in hidden tab #81

Closed
jason0x43 opened this issue Feb 13, 2012 · 5 comments
Closed

Comments

@jason0x43
Copy link
Member

Whenever I create page in which a dgrid uses a JsonRest store and is in a hidden tab of a TabContainer (one that is not the initially selected one), I get DOMExceptions and a somewhat screwed up dgrid. In particular, the dgrid has a large empty space under the last row of data, and scrolling to the bottom or top of the dgrid's data throws additional DOMExceptions. The exceptions are generated by line 437 in List.js.

If I click on one of the column headers to sort the dgrid (once its tab is visible), it resets its layout and works fine. If the dgrid initializes on a visible tab instead of an unselected tab, it's fine. If I use a Memory store instead of a JsonRest, it's fine even if the dgrid is initialized in a hidden tab. If the dgrid is initialized in a hidden tab but without a store, and then the store is set (via setStore) once the dgrid is visible, it's fine.

My fix so far is just to add a listener to the TabContainer and set the dgrid's store once the dgrid's tab becomes visible, but this seems less than ideal.

@ghost
Copy link

ghost commented Feb 13, 2012

Not sure whether you're running against dgrid 0.2.0 or master; if the latter, you might want to try mixing in extensions/DijitRegistry to your grid constructor. You can see examples of this in the test/dijit_layout* pages.

@jason0x43
Copy link
Member Author

I was using dgrid 0.2.0, then I switched to master. Under 0.2.0 I didn't get the DOMExceptions. I did mix in DijitRegistry, but it doesn't seem to make a difference. The problem also shows up in test/dijit_layout_programmatic.html when I switch the gridTab2 grid to use a JsonRest store rather than testStore.

@ghost
Copy link

ghost commented Feb 22, 2012

We have put together the following test page, based on dijit_layout_programmatic.html but using a JsonRest implementation: https://github.com/SitePen/dgrid/blob/aea1bd9c1143956b01220dc6cf126ad1c1d3aac8/test/dijit_layout_JsonRest.html

Using this test page, we don't observe any issues (based on the code in the master branch). Would you be able to throw your test page into a gist so we can get a better look? Thanks.

@jason0x43
Copy link
Member Author

Sure, although at this point I don't think dgrid was the source of my problem. I was using Django's built-in development server to serve dojo in asynchronous mode, and I just discovered that Django's server is single threaded, so it can't handle a bunch of simultaneous incoming connections very well. I'm guessing dgrid was having problems because it was trying to load data during the initial flood of connections, whereas DataGrid took a bit longer and so avoided the crush.

@ghost
Copy link

ghost commented Feb 24, 2012

Based on your latest feedback, and also recent developments in master (e.g. #103), I'll close this for now, but if you do find you have a specific issue, feel free to reopen this or open a new ticket as appropriate. Thanks!

@ghost ghost closed this as completed Feb 24, 2012
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant