Cheating latency

instant.page uses just-in-time preloading — it preloads a page right before a user clicks on it.

Before a user clicks on a link, they hover their mouse over that link. When a user has hovered for 65 ms there is one chance out of two that they will click on that link, so instant.page starts preloading at this moment, leaving on average over 300 ms for the page to preload.

On mobile, a user starts touching their display before releasing it, leaving on average 90 ms to preload the page.

You can also click the menu at the bottomon the right to experience it.

Cheating the brain

The humain brain perceives actions taking less than 100 ms as instant. As a result, instant.page makes your site feel instant even on 3G (assuming your pages are fast to render).

0.1 second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.

Easy on your server and your user’s data plan

Pages are preloaded only when there’s a good chance that a user is going to visit them, and it preloads only the HTML of that page, being respectful of your users’ and servers’ bandwidth and CPU.

It uses passive event listeners so that your pages stay smooth. It doesn’t preload when the user has data saver enabled (since version 1.2.2). It’s 1 kB and loads after everything else. And it’s free and open source (MIT license).