Is there a way to detect when a page has finished loading ie all its content, javascript and assets like css and images?
so like:
if(PAGE HAS FINISHED LOADING) { // do something amazing } and also additionally if the page has been loading for more than 1 min then do something else such as:
if(PAGE HAS BEEN LOADING FOR 1 MIN) { // do something else amazing } I've seen websites like Apple's MobileMe do similar checks but haven't been able to figure it out in their huge code libraries.
Can anyone help?
Thanks
EDIT: This is essentially what I want to do:
// hide content $("#hide").hide(); // hide loading $("#loading").hide(); // fade in loading animation setTimeout($('#loading').fadeIn(), 200); jQuery(window).load(function() { $("#hide").fadeIn(); $("#loading").fadeOut(function() { $(this).remove(); clearInterval(loadingAnim); }); setTimeout(function() { $("#error").fadeIn(); }, 60000); });
You can check the document. readyState property. From MDN: Returns "loading" while the document is loading, "interactive" once it is finished parsing but still loading sub-resources, and "complete" once it has loaded.
jQuery(window).load(function () { alert('page is loaded'); setTimeout(function () { alert('page is loaded and 1 minute has passed'); }, 60000); }); Or http://jsfiddle.net/tangibleJ/fLLrs/1/
See also http://api.jquery.com/load-event/ for an explanation on the jQuery(window).load.
Update
A detailed explanation on how javascript loading works and the two events DOMContentLoaded and OnLoad can be found on this page.
DOMContentLoaded: When the DOM is ready to be manipulated. jQuery's way of capturing this event is with jQuery(document).ready(function () {});.
OnLoad: When the DOM is ready and all assets - this includes images, iframe, fonts, etc - have been loaded and the spinning wheel / hour class disappear. jQuery's way of capturing this event is the above mentioned jQuery(window).load.
there are two ways to do this in jquery depending what you are looking for..
using jquery you can do
//this will wait for the text assets to be loaded before calling this (the dom.. css.. js)
$(document).ready(function(){...}); //this will wait for all the images and text assets to finish loading before executing
$(window).load(function(){...}); If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With