I have an ArrayCollection with a few thousand strongly typed VOs that is the dataProvider for a datagrid in our app. This ArrayCollection has a filterFunction specified and we have a few controls to help the user find the data they're looking for. As the dataset grows in size, it takes longer and longer for this filterFunction to run across all items. How are others handling this situation? I'd like to keep this client-side because I have all of the VOs on the client already and think a round trip to the server could possibly take longer. Are there events I can listen for at the beginning and end of the filtering operation? Would this even help me because the UI will be blocked while the filter is running anyways? I think I've optimized my filterFunction as much as I can, just checking a few properties on each strongly typed VO.
Maybe the solution is to go server-side so I can show a processing screen, but just seems wasteful since the client has everything it needs.

