There is no "one size fits all" solution.
If the database fits onto client hard drive and the modifications are rare, preloading everything is almost always better.
If you have a dynamically changing system such as bug tracker, it is still possible to go fully local, but that would require considerable cooperation from server side. When the back-end does not have a fast, efficient API for sending diffs, you may get stuck waiting for it to be implemented. But that's a purely organizational problem.
Of course, all of above applies to actually saving data to permanent storage. Storing everything in memory is a sin by itself.