This content has been marked as final. Show 4 replies
The solution I have used is to do data processing piece by pice in a timer callback. When data processing is done dispatch a event which can be used to consume the result.
IMO Flex should not be used to process a lot of data. You should send a request to a server (via HTTPRequest, WebServices,...) which will do the processing for your application and send you back the result.
If the processed data that the server sends back is sizable, it IS an issue. One of the apps we're working on has to do a lot of processing to take the data from the server and merge it with the data on the client. The incremental data from the server is might have 100 rows, while the full set is several hundred or more. The server has already done the hard work of telling me ONLY the updated stuff, but I need to merge it with the old records. Right now this merge has the effect of hanging the user's scroll for example, and other UI interactions.
I have not see a good solution for this. Sreenivas solution is the one most often used.
Here is an outside of the box solution, discussed, but not tried:
build a processing application using AS2. instantiate it in the Html wrapper, and communicate with it via LocalConnection.
Theoretically, it will be in a diferent VirtualMachine than the AS3 app, and thus let you use your pc's resources in parallel.
The "use-the-server" solution is valid, but is not universal.
Also, if your processing takes more than 60 seconds, you are totally screwed. FP8+ has a hard limit of 60 seconds processing, before it thinks the Player is hung.