About

Monday 8 June 2009

FireFox - Page Rendering

Few days ago I needed to customize my FireFox (FF) for an experiment I was performing. I wanted to test users for different delay thresholds. I also wanted to try the users with different page rendering scenarios. One of the scenario was that how would user react when the page is loaded at once (instead of incremental leading as is followed by many browsers today).

After a lot of peeking in the about:config tab of FF, intensive googling & numerous forum posts and even chat with the FF support groups, i didn’t found the answer to this very tweak. But in the end i was able to carry out the intended task with another method.

As FF uses the Gecko Page Rendering Mechanism, it follows the concept of flows which makes the FF loads a page after intended milliseconds of delay, till this time whatever data has been received; it’s displayed in the browsers. This flow delays is set in the "nglayout.initialpaint.delay" preference available in under the about:config tab. If you don’t find it there it means that its using the default setting of 250ms.

Many people misunderstand preference and always set it to 0ms as they think the browser will perform faster. It might seem to perform faster but in reality it does not. The MozillaZine knowledge base mentions that "Lower values will make a page initially display more quickly, but will make the page take longer to finish rendering. Higher values will have the opposite effect." which is true.

Anyhooo coming back to the topic. I found that if we increase this value to the maximum, the page can be loaded at once when its completely downloaded which was the exact thing I wanted :D hence I was able to perform my experiments. The page will be loaded before the timer gets expired given if the page has already been downloaded. The purpose of posting this here is that I found this similar question asked again and again by FF users. They may find this entry useful as well.

No comments:

Post a Comment