{"version":"1.0","provider_name":"UshopWell.com","provider_url":"https:\/\/ushopwell.com\/ublog","author_name":"UShopWell","author_url":"https:\/\/ushopwell.com\/ublog\/author\/kburnettu\/","title":"async vs defer | DOMContentLoaded in JavaScript - UshopWell.com","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"RyTXlcyX01\"><a href=\"https:\/\/ushopwell.com\/ublog\/async-vs-defer-domcontentloaded-in-javascript\/\">async vs defer | DOMContentLoaded in JavaScript<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/ushopwell.com\/ublog\/async-vs-defer-domcontentloaded-in-javascript\/embed\/#?secret=RyTXlcyX01\" width=\"600\" height=\"338\" title=\"&#8220;async vs defer | DOMContentLoaded in JavaScript&#8221; &#8212; UshopWell.com\" data-secret=\"RyTXlcyX01\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/ushopwell.com\/ublog\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","thumbnail_url":"https:\/\/ushopwell.com\/ublog\/wp-content\/uploads\/2025\/12\/171389\/async-vs-defer-domcontentloaded-in-javascript-768x576.jpg","thumbnail_width":600,"thumbnail_height":450,"description":"In this video, we\u2019ll explore how HTML parsing and JavaScript execution work together inside the browser. You\u2019ll learn: What happens when we place the script tag in different parts of the page Why JavaScript sometimes throws \u201cCannot set properties of null\u201d errors The difference between async and defer attributes How these attributes improve page performance How DOMContentLoaded ensures code runs after the DOM is ready This is one of the..."}