Earlier today I released the beta for Lighthouse Pro 2.5. I mentioned I’d follow up with some details on the Ajax and ColdSpring changes. First up is more information about the Ajax changes. The original Lighthouse Pro did not make use of Ajax at all. Every search and sort resulted in a complete reload of the list of issues. While I don’t remember what version switched to Ajax, LHP was modified to use Ajax to load content for pagination, sorting, and filtering. This worked great. I used Spry to handle retrieving and displaying data.
This worked fine until the number of bugs hit around 100. I first tried to slim the XML a bit (I talk about this a bit here). This worked, but was a band aid. Switching to JSON resulted in an even greater reduction in file size.
Unfortunately this was just another band aid. When the number of bugs got even larger, the initial data load slowed the application down considerably. So while each row of data in the JSON was slim, at 500+ rows, it was too much.
What lesson did I learn here? Ajax is not a magic bullet. You need to be aware of the size of data going back and forth, and do proper testing. In my case, this was adding a large set of test data so I could see what some of my users were reporting. To say it another way, you need to have a good understanding of the unit size (how much data per row, or unit of data) and the expected number of units. So for something like a bug tracker, or a blog, I think it is fair to expect there would be quite a few rows of data. If the application was a product lister, you can probably expect much fewer rows of data.