From ddad97cfdefe7da11920d840d656dc29abe88f48 Mon Sep 17 00:00:00 2001 From: Chalarangelo Date: Thu, 18 Aug 2022 20:51:51 +0300 Subject: [PATCH] Add JS async defer --- blog_images/async-defer.png | Bin 0 -> 32976 bytes blog_posts/js-async-defer.md | 43 +++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 blog_images/async-defer.png create mode 100644 blog_posts/js-async-defer.md diff --git a/blog_images/async-defer.png b/blog_images/async-defer.png new file mode 100644 index 0000000000000000000000000000000000000000..e198a9de522897dcef32dcb0be25e27f2e1259c9 GIT binary patch literal 32976 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 z
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 literal 0 HcmV?d00001 diff --git a/blog_posts/js-async-defer.md b/blog_posts/js-async-defer.md new file mode 100644 index 000000000..fa5d44c30 --- /dev/null +++ b/blog_posts/js-async-defer.md @@ -0,0 +1,43 @@ +--- +title: What is the difference between async and defer in script loading? +shortTitle: Async and defer +type: question +tags: javascript,html +expertise: intermediate +author: chalarangelo +cover: blog_images/coworking-space.jpg +excerpt: Understanding how to correctly load your JavaScript files can significantly improve your web application's performance. +firstSeen: 2022-09-04T05:00:00-04:00 +--- + +When it comes to loading JavaScript files, there are a few different options available. Understanding exactly how scripts are loaded and executed is crucial for website performance, as well as for the overall quality of the user experience. Let's take a look at how the ` +``` + +As you can see, this method can cause a long pause in HTML parsing, resulting in a degraded user experience. + +### The async attribute + +To avoid a long pause in HTML parsing, the `async` attribute can be leveraged. This ensures that, when the script is encountered, parsing doesn't pause right away. Instead, the script is loaded in the background and only the HTML parsing is paused to execute it. HTML parsing resumes as usual after script execution is completed. + +```html + +``` + +While the `async` attribute takes steps to mitigate the issue mentioned previously, it comes with an important caveat. Scripts loaded this way are not guaranteed to execute in the order specified, but rather as they become available when they are loaded. + +### The defer attribute + +Finally, the `defer` attribute builds on top of the previous behavior to guarantee order of execution for scripts. As previously, scripts are loaded in the background as they are encountered. When the HTML parsing finishes, they are then executed in order. + +```html + +```