Hi Nhut,
There is only one answer. It depends.
On the size of the data, On what kind of clients, on expected network speed, and on tens of other things.
Usually, I look at the complete size of the returned data. if that's <100Kb I just pull everything all the time. However, this is not a hard rule.
there are times that I pull down 1.5Gb of data in 1 go. Also, there are times I limit it to <1.5Kb (1 packet on the network)
Most of it related to the change rate of the data, and how often I need it in my app.
Regards
Sander