Somewhere else in the forum I read that you can also set the ScriptMode="Release"
in the ScriptManager and it should have the same effect as disabling the debug mode (at least on the client side), so I did this, nevertheless once I tried disabling debug mode but it didn't really help.
The online demo seems to manage pretty quick, so I guess I'll try the web service approach.
Requirements are that we need to display different trees (only on at a time) with approximately 5000-10000 nodes, so we use load on demand, which for small numbers of fetched nodes works fine. Nodes can be checked, in upper layers tri state is displayed. The check state is only processed once the user clicked a button. So the only tree event we need is the node expand for fetching new nodes. Sometimes the tree is synchronized with other ways of selecting "entities" somewhere else in the app, so if there nothing is selected we use the ClearCheckedNodes() method which just runs and runs and runs, I didn't wait and didn't check what happens inside, just noticed that it doesnt come back for too long time, after I switched on persistloadondemand it worked fine again.
That's our tree:
I hooked up some Java Script for easily selecting several nodes with "Alt+Click", but I don't think that doesn't change a lot, do you?
Indeed you are right, 500 nodes are not really usable anymore, and I guess that wont be the standard case, but after the client decides and it actually may be like this.