When building websites we often think about the critical rendering path, the sequence of steps the browser goes through to render the initial view of the site. The problem comes that with so much interaction of our sites relying on JavaScript, there is often a limbo where the browser has started to render the initial content but as the JavaScript has not yet downloaded our interactions do not work.
In some cases progressive enhancement allows us to fall back to the server handling the user interaction for things like forms but in many cases this isn’t appropriate. In order to give the user the perception that our site is fully interactive we need to give them the perception that these interactive elements are ready fast, we need to be considering the ‘Critical JavaScript Path’. The steps we can take to allow the users browser to be no only rendered but ready to capture user interactions. In this talk we will explore what is the Critical JavaScript Path and how we can optimise it to offer a better perceived performance.