We are developing a web application that has a screen with two parts. On the left side we have a tree where the user can check or uncheck specific items, even leaves or nodes in the tree. If we select a node in the tree one time, that might mean we select thousands of its children at once.
On the right side we have a table with paging and filtering possibilities. This table shows the details of the selection that was made in the tree.
As fetching the details is time-consuming. Because of paging and filtering we cannot load only the deltas.
Currently our design is that first the user has to make the selection in the tree and we have to press a big "Update" button under the tree so that the table refreshes according to the changed selection in the tree.
Unfortunately this yields poor usability according to our tests. (People don't understand the "Update button" and wait for the table to update automatically.)
We thought of making the selection change immediate, but as the typical scenario is selecting many nodes and then work with the table, this would yield many wasted server calls because only the last one call's result would be used.
Could you suggest me a better way to solve this problem (possibly supported with live examples)?
Because of paging and filtering we cannot load only the deltas.
Why? Page is just another filter criterion? Which for fetching details could be translated into an "is in []" with the identifiers of the rows in the paged filtered result.