jQuery UI Widgets › Forums › Navigation › Tree › Ajax loading
Tagged: ajax loading incremental
This topic contains 19 replies, has 3 voices, and was last updated by Kynao 12 years, 3 months ago.
-
AuthorAjax loading Posts
-
Do we have incremental loading, ie load on demand ?
When user expand a node, a request is sent to server to load subnodes of the the expanded node,
that optimizes loading and rendering performance when dealing with large tree data.Hi Kynao,
Load on Demand is still not supported.
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.comThe reason i asked for this is i currently try to build a bookmark management application (something like sitebar script as a basis if you know it). Many users have a lot of bookmarks or they would not need such an app. In extreme situations there are users like me having around 28600 bookmarks and 15000 folders.
That’s quite impossible to load so much data or at least would clearly not be reasonable and pleasant to use…
I would like to allow the users to share their treeview and exchange information from one tree to another, which make the problem even worse.So right now, i’m in trouble to progress on this subject. Do you think something possible to do in this area and plan it in the roadmap ?
If yes, and as your php demos are extremely useful, i would love to see a php sample.We don’t have plans to make the jqxTree to support scenarios with thousands of items.
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.comWith ajax loading, there are not thousands of items anymore, that’s the point.
Yes, until you load the items after clicking the root items. The new items will be LI tags resulting into increasing the size of the DOM tree.
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.comI already saw other treeviews with thousands of items working fine this way.
When we have an important proportion of folders, that indicates there is a will of organization, anyway there is no sense to put one thousand of items into one folder, that is not usable and if the user “want” to increase the size of the DOM, he would have to open all his folders, i don’t see a user doing this…
Furthermore, as a demonstration, i have an example of this extreme situation : xmarks online service, it loads my 29000 bookmarks, it works fine, even the search which is incredibly fast by opening folders to point out the element in the hierarchy. xmarks does not use ajax loading, that’s the reason why i said it is the extreme situation, so the result is the time needed to open first time. With ajax loading we would not dive either into an important time loading neither into increasing the dom like xmark does (no user will open his 15000 folders manually…)
If a Tree supports Virtualization, there’s no problem of loading and working with thousands of Items. The purpose of the jqxTree is to be a simple SEO friendly Tree Navigation plug-in. If we are going to support thousands of items in a Tree-like structure, we’ll most probably implement a Tree-Grid. We’ll implement ajax loading in jqxTree at some point, but we don’t have plans to support scenarios with huge amount of data in this widget.
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.comEven me, i rarely open more than 20 folders during a session (and also rarely more then 10 at a time), even if we say 50 folders, that’s manageable. It is aboiut a working session, not a game consisting of clicking on the maximum folders as possible.
Last but not least it’s also the responsability of the user who learn how to behave depending of the impact but once again i saw several treeviews working fine with huge number of entries. What is the optimised way, if any to feed a jqwidget tree ? json, source, ul (or they are all the same at the end) ?
It does not matter whether the user creates the Tree from json or from UL, the result will be UL. As I already said, we’ll implement ajax loading in jqxTree in one of the future releases. We’ll discuss that feature for the next update of the Roadmap.
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.comThanks for thinking and discussing of it. So there may be ajax loading for a Tree-Grid and a jqxTree ? You mentionned jqxTree in your last message but maybe you meant Tree-Grid. What is the technical meaning of “Tree supports Virtualization” ?
I can send you a screencast demo of a search done in a xmark treeview, it’s particularly efficient and so useful saving so much time, i only saw them doing that, a perfect example to follow or to suggest here at least.
Ajax loading will be implemented for jqxTree in the upcoming releases. The exact time-frame is not specified as the feature is not yet planned for a specific release. We’ll discuss that feature for the next update of the Roadmap. Tree-Grid is a widget that we may implement in the future. The purpose of this widget is to be a hybrid between tree and grid and to support the same features as our Grid does, but to be possible to display it in a Tree struture. Tree-Grid will support virtualization which minimizes the number of DOM elements that need to be rendered and ensures unbeatable performance in scenarios with thousands of items(rows).
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.comAnd a jqxTree supporting virtualization could be an option too ?
I mean for a bookmarking app, a tree-grid is a little too much for the goal.On my side, i plan to use 2 trees integrated into sliding panels to offer navigation usability and discretion.
While tree-grid is a great component i will have use for but it has a quite different use than jqxTree, the ergonomy, purpose and targeted users are also different.It is possible to create a load on demand behavior by simply binding the expand event and tell the handler to load and append the sub nodes for the current.
In this example I add a sub-node to each node with children with a unique Id starting with “itemLoader”. On the expand event I look for the itemLoader nodes, if one is found I do an ajax call for the sub nodes, add them to the current element, and finally remove the item loader.
Tried to post a code example here but wont work for me. Reply to this post if you like the sample code.
-
AuthorPosts
You must be logged in to reply to this topic.