Does anybody know if any solid metrics exist around when to display the error "Request is taking too long..." when trying to load a page? I know all pages will very depending on the DB calls etc., but if the average page load time is heavy and takes an average of 6 seconds (fake number), is it good practice to display the message at twice the average pageload time, so 12 seconds in this example?
NNGroup conducted some research on this. (Bolding is by me.)
"The main guideline is to use a looped indicator for delays of 2–9 seconds and a percent-done indicator for delays of 10 seconds or more. But since you can’t always estimate the delay precisely in advance, you may want to lower the cutoff point between the two forms of progress feedback so that the vast majority of response-time delays that end up taking more than 10 seconds will be alleviated by a percent-done indicator. The bigger the variability in your estimates, the lower the threshold for showing the more elaborate feedback.
Ultimately, good progress indicators can make users stick around to finish the task and generally have a more positive impression of your website or application."