Update: Only happens using WiFi.
Update: Might not happen with 9.3 Beta (to be confirmed).
(click to enlarge)
Image using an iPhone running iOS 9.2.1
Same problem happens with an iPad:
Image using an iPad running iOS 9.2.0
"Stalled". Exactly 30 seconds (it's local). If we inspect the network timeline, it's pretty obvious:
Already going for a hang here
30 seconds to load 6 resources
After the "block" it loads all resources and we have our page displayed:
You might be thinking: "but... all those sites out there with dozens of resources don't stall". Well, yes. As I said, this is non-deterministic and I was unable to find the pattern, but some suffer from this issue, others don't. Some apps with webviews will suffer, others won't. My goal was to reduce the issue to the simplest example I could find. I can't figure out the rationale behind this behavior. I imagine it was either a security issue (some edge case they tried to solve) or just a poor performance design. As people update their iPhones, iPads and so on, this will become more obvious. I've reported the issue to Apple but no response or fix yet (nor have they given any prevision date).
Don't believe me? Try it here!
Do you have any information? Share it with me!
Some more info:
– I was able to reproduce the problem using an iPhone, iPad and iPad mini;
– It doesn't have anything to do with the server hosting the page; I've tried more than one server and I've confirmed with Wireshark that the request doesn't go out, the delay is not server-side;
– The issue happens using both HTTP and HTTPS (with valid certificate);
– If we add "n" more resources, the problem remains;
– Adding extra HTML in the middle "might" solve the problem;
– The issue might not happen all the time in this example due to cache hits. Just refresh a couple of times or clear the cache and you'll hit the issue.
– Only happens using WiFi. If you use your 3G or 4G connection, it won't happen.
Is the issue affecting you? Report to Apple