The short answer is no there isn't a better way. Allow me to explain the technical challenges involved with the loading of pages.
- Modifying the already loaded HTML page
- Downloading additional HTML content
- Sending data to the web server
- Calling a web service, getting data and displaying that data
I hope this explanation sheds some light on the problem of "when is the page done loading" problem.