So I am currently working on a J2EE project which is basically an ERP and is mainly used by clients for generating contracts and billings and invoices and what not... typical stuff. The application itself is made in JSF with Richfaces. Most of the screens have a huge-ass search section and an equally baffling option to load all results in one go instead of paginating. Recently we have been making basic performance improvements for frequently used screens to load results and the page a little faster.
Those familiar with JSF, particularly v2.x, will know the concept of partial submission wherein your form is POSTed entirely but processed selectively to avoid triggering unnecessary validations when actually not required. So in our case, the results are, by default, loaded in pagination mode with the option to load all the results if required. Using this "Show All" functionality generally isn't an issue since most of the users are sales guys and they usually limit their results to their location. However, we recently got an email from a user complaining about the loading time. However, after reading his email, I am tempted to reply with just a one liner - "So what did you expect?"
Below is the email that was sent:
We are having issues with the load time in the following scenario:
- Go to Mass Contract Update Screen
- Search for all some_search_criteria (there were a lot)
- Attempt to Select All contracts and update
Issue here is that the page takes a long time to load. User will scroll down, system will try to load more results, users will try to scroll down more but will need to wait for the page to load more data. It took user 35 minutes to put all contracts in the new status because they had to scroll down the page to review all of the contracts before they could do so, and that took a lot of time.
WTFy stuff:
- The fact that they are still using IE8
- The fact that they are not using enough search criteria to limit the results
- The fact that they think that around 1500+ rows worth of results will load instantaneously all in one viewport without having the user to scroll
- The fact that they don't know how to use a computer