Skip to content

Instantly share code, notes, and snippets.

@herdianf
Created February 4, 2024 12:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save herdianf/c1574a875429ef9cc77bd928eac32b0e to your computer and use it in GitHub Desktop.
Save herdianf/c1574a875429ef9cc77bd928eac32b0e to your computer and use it in GitHub Desktop.
dom ready
var domReady = (function() {
var readyCallbacks = [];
function whenReady(callback) {
setTimeout(function() {
callback.call(document)
});
}
function completed() {
document.removeEventListener('DOMContentLoaded', completed);
window.removeEventListener('load', completed);
while (readyCallbacks.length) {
let cb = readyCallbacks.shift();
whenReady(cb);
}
}
return function(callback) {
if (document.readyState === 'loading') {
if (readyCallbacks.length === 0) {
document.addEventListener('DOMContentLoaded', completed);
window.addEventListener('load', completed);
}
readyCallbacks.push(callback)
} else {
whenReady(callback);
}
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment