I’ve already written a couple of times about the quirks of working with huge tables on the client (one, two), but late last week my colleagues suggested another interesting way to optimize relatively large data collections on the client. The short version: the standard recommends working with large collections only on the server. However, if you iterate through the entire collection on the client at the start, for example in the form’s opening handler, it gets cached. After that, you can loop through it, search for rows, and do other work without extra server calls. Overall, you spend less time shuffling data around.
I’ve just run some simple tests, and yes, it seems to work. The method feels a bit like a workaround, and I haven’t tested it under serious load yet, but it’s probably worth keeping in mind.