Setting Performance Targets
I sometimes read things like "A user will abandon a page if it doesn't load within 2 seconds". I really don't think these kinds of generalisations are very helpful.
Users' expectations vary. They take account of network connectivity and the nature of the information they're accessing. If I abandoned any requests that were not fulfilled within 2 seconds I don't think I'd ever see any web pages on my phone. My expectations aren't that high. I know it's going to take longer and that's fine, up to a point.
So, are there benchmarks that we can aim for realistically? We can't just say "page" and "2 seconds". It needs to also specify the network connection type - wired, WiFi, 3G, 4G, and the page weight in bytes.
There's a danger that we strive to keep everything small and light and then give poor experiences on wired desktops with super fast connection speeds. We need to deliver the appropriate experiences.
What's our definition of "loaded"? Is it when everything is there and available to use? As soon as there's something to interact with? A sign that something's happening? A use doesn't necessarily need it all. They just need to know that it's coming within a reasonable time frame. There are lots of tactics for keeping a user on side while content is loading too - an entertaining loading animation, flashing up a quote, animating in the various screen elements. As long as there's something to keep the mind from wandering onto something else it's generally fine. Does this distraction tactic feel great the first time but really irritate by the tenth time?
How do you benchmark all of that? It's hard, very hard. Maybe that why all we've got is empty generalisations?