browsers – Pages that never finish loading: How to diagnose

If the “wheel just keeps spinning” then it means the browser thinks it is still loading something (from somewhere). If you open your browser developer tools -> network tab (and reload the page) it should eventually show “Loaded” at the bottom, in red, ex:

enter image description here

If it does then it may be spinning waiting on some XHR resource, not sure. If it doesn’t then it’s either stuck waiting, loading an initial resource (ex: javascript file that is referenced, or image), or it is running some “startup javascript” that is running forever and never terminating, or possibly causing “out of memory” for the page (ex: recursive loop generating too long of a string or what not).

For the waiting-on-resources, you might be able to see one in the “network” list that is attempting to load but not finishing.

For the javascript, I found I could run it in firefox, after awhile firefox will say “A web page is slowing down your browser. What would you like to do? (Stop it)(Wait)”.

left side firefox

If you click “(Stop it)” then in will basically interrupt the javascript that’s “currently running” (possibly/probably the offending one), and in the javascript developer console it will show the backtrace which might give you hints as to what’s going awry. Apparently similar behavior is possible in chrome (if it runs out of memory at least, open the developer tools, it’ll abort and let you see a trace when it runs out, interrupting it might also be possible) but it was harder to read the trace in chrome’s dev tools for me (didn’t show full origin url’s of each trace line as easily) FWIW.

The other links in the other answers were useful as well (one of them said, in my case “browser ran out of memory” or “unable to connect to server” all indications of my problem). Another possibly useful link is this.

In my case it appeared to have been a conflict between prototype.js #inspect and the google (gapi) plusone button, causing some kind of infinite loop (?) that made it eventually run out of memory. Updating prototype seemed to “fix” it.