Optimising your Facebook app
Wiliam have recently launched a Facebook application called Winkiwoo, where users can print Facebook photos. After going on Living Social and selling almost 15 thousand books at launch, we know too well that the Facebook applications need to be optimised.
The difficulty with Facebook applications is they appear within an iframe which is difficult in some browsers, particularly Internet Explorer, to see the loading icon. The feedback from users is they do not know when a page is loading and they are concerned nothing is happening.
The optimisation strategy that we quickly employed involved:
Reducing the image file size in Photoshop
The difficulty with reducing .PNG files in Photoshop is if you have selected “save for web and other devices” it appears that is all you can do. After some research we found that selecting “image” and then “adjustments” and “posturize” and changing the scale of the posturization an image file size can be greatly reduced. We quickly went through all the image folders and reduced the file size of each image file. The total file size we saved from doing this was 1.4 mb (which equates for approximately 40 seconds in a typical internet browser).
Using a CDN to load static content
We used a CDN to load static content (such as images, JavaScript files, stylesheets) from a location that is closest to the user. For example, if the user is in Sydney, the images would load from a server based in Sydney hence halving load times.
Caching database queries
By caching database queries we were saving constant trips to the database, meaning there were less concurrent connections to the database server. This means that the server will be able to handle more traffic, more users and more connections.
Fine-tuning IIS7 performance
IIS7 comes with dynamic output caching inbuilt on the server. By turning this on, this effectively generates static HTML versions of requested .net pages at runtime. This saves a significant amount of time processing and compiling the code at runtime, effectively halving the load time of the page.
From a user's perspective, this means that they can create photo books faster and have a more reliable experience from within the application. More photobooks equals more sales and higher profitability.