You might think that loading a script synchronously would make the next line of code execute after the script has downloaded, right? But that's not what synchronous loading of javascript file means. The confusion arises when you're comparing async vs sync vs defer strategies of loading a particular file.
More on loading a javascript file in async vs sync vs defer manner at the end of the post.
Here we first talk w.r.t code execution. To execute the lines of code after the script has downloaded successfully, you can use onload
attribute on script tag. Refer the code snippet below:
<html>
<head>
<title>Sync Script Tag</title>
</head>
<body>
<h1>Load script sync.</h1>
</body>
<script>
function afterLoad() {
console.log('script loaded successfully.') // executes after script has loaded
}
function sync_load() {
console.log('sync_load...')
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = false; // load synchronously
s.onload = afterLoad;
s.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js";
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
}
console.log('JS entry')
sync_load();
console.log('next tick') // this executes before after_load
</script>
</html>
Output:
Now, coming back to async vs sync vs defer strategy, please refer to the image below via stackoverflow:
In this case, the difference between async vs sync comes into play w.r.t parsing HTML file. Remember that!
Happy coding ✨
Top comments (0)