When using async, the script is downloaded asynchronously and executed immediately, and the execution order is not guaranteed. It is suitable for independent scripts; 2. When using defer, the script is downloaded asynchronously but delayed until the HTML parsing is completed and executed in sequence, which is suitable for scripts that rely on DOM or need to be executed in sequence; 3. If there is no attribute, the script will block HTML parsing, affecting performance; therefore, use async for non-critical scripts and use defer for key logic.
When you add a <script></script>
tag to an HTML document, the browser normally downloads and executes the script immediately, which can block HTML parsing and slow down page loading. To improve performance, HTML provides two attributes — async
and defer
— that change how external scripts are loaded and executed. While both help avoid blocking the page, they work differently.

How async
works
When you use async
:
<script src="script.js" async></script>
- The script is downloaded in the background while the HTML continues to parse.
- As soon as the script finishes downloading, parsing stops , and the script is executed immediately.
- After execution, HTML parsing resumes.
Key behavior :

- Execution order is not guaranteed . If you have multiple
async
scripts, they run as soon as they're ready, which might not be in the order they appear in the HTML. - Best for scripts that are independent (like analytics or ads) and don't rely on the DOM or other scripts.
Example: Script A is smaller and downloads faster than Script B, even if B comes first in the HTML — A will run first.
How defer
works
When you use defer
:

<script src="script.js" defer></script>
- The script is downloaded in the background , like with
async
. - But execution is delayed until the HTML parsing is completely finished .
- Scripts with
defer
execute in order , right after parsing ends but before theDOMContentLoaded
event.
Key behavior :
- Scripts run in the order they appear in the HTML.
- The DOM is fully constructed by the time they run, so it's safe to manipulate elements.
- Ideal for scripts that need the full DOM or depend on other scripts.
Example: If you have multiple
defer
scripts, they download in any order but execute in sequence after the page finishes parsing.
When to use which?
-
Use
async
for:- Independent scripts (eg, Google Analytics, third-party widgets).
- You don't care when they run, as long as they don't block rendering.
- Faster execution as soon as possible — even before the page is fully parsed.
-
Use
defer
for:- Scripts that rely on the DOM or other scripts.
- You need them to run in a specific order.
- Main application logic that should run after the page is ready.
One more thing: no attribute
If you use neither async
nor defer
:
- The browser stops parsing HTML while it downloads and runs the script.
- This can significantly delay page rendering, especially if the script is large or slow to load.
In summary :
Feature | async
|
defer
|
No attribute |
---|---|---|---|
Download timing | In parallel with HTML | In parallel with HTML | Blocks HTML parsing |
Execution timing | As soon as downloaded | After HTML parsing completes | Immediately when reached |
Execution order | Not guaranteed | Preserved (as in HTML) | As in HTML |
DOM available? | Not necessary | Yes | Depends |
So, if you want scripts to load fast without blocking, but don't need them in order — use async
.
If you need scripts to run in order and after the page is ready — use defer
.
Basically, defer
is safer for most site-critical scripts, while async
is best for independent, non-essential ones.
The above is the detailed content of What is the difference between async and defer for script tags?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The rational use of semantic tags in HTML can improve page structure clarity, accessibility and SEO effects. 1. Used for independent content blocks, such as blog posts or comments, it must be self-contained; 2. Used for classification related content, usually including titles, and is suitable for different modules of the page; 3. Used for auxiliary information related to the main content but not core, such as sidebar recommendations or author profiles. In actual development, labels should be combined and other, avoid excessive nesting, keep the structure simple, and verify the rationality of the structure through developer tools.

The web page structure needs to be supported by core HTML elements. 1. The overall structure of the page is composed of , , which is the root element, which stores meta information and displays the content; 2. The content organization relies on title (-), paragraph () and block tags (such as ,) to improve organizational structure and SEO; 3. Navigation is implemented through and implemented, commonly used organizations are linked and supplemented with aria-current attribute to enhance accessibility; 4. Form interaction involves , , and , to ensure the complete user input and submission functions. Proper use of these elements can improve page clarity, maintenance and search engine optimization.

Client-sideformvalidationcanbedonewithoutJavaScriptbyusingHTMLattributes.1)Userequiredtoenforcemandatoryfields.2)ValidateemailsandURLswithtypeattributeslikeemailorurl,orusepatternwithregexforcustomformats.3)Limitvaluesusingmin,max,minlength,andmaxlen

Use tags in HTML to group options in the drop-down menu. The specific method is to wrap a group of elements and define the group name through the label attribute, such as: 1. Contains options such as apples, bananas, oranges, etc.; 2. Contains options such as carrots, broccoli, etc.; 3. Each is an independent group, and the options within the group are automatically indented. Notes include: ① No nesting is supported; ② The entire group can be disabled through the disabled attribute; ③ The style is restricted and needs to be beautified in combination with CSS or third-party libraries; plug-ins such as Select2 can be used to enhance functions.

To use HTML button elements to achieve clickable buttons, you must first master its basic usage and common precautions. 1. Create buttons with tags and define behaviors through type attributes (such as button, submit, reset), which is submitted by default; 2. Add interactive functions through JavaScript, which can be written inline or bind event listeners through ID to improve maintenance; 3. Use CSS to customize styles, including background color, border, rounded corners and hover/active status effects to enhance user experience; 4. Pay attention to common problems: make sure that the disabled attribute is not enabled, JS events are correctly bound, layout occlusion, and use the help of developer tools to troubleshoot exceptions. Master this

Metadata in HTMLhead is crucial for SEO, social sharing, and browser behavior. 1. Set the page title and description, use and keep it concise and unique; 2. Add OpenGraph and Twitter card information to optimize social sharing effects, pay attention to the image size and use debugging tools to test; 3. Define the character set and viewport settings to ensure multi-language support is adapted to the mobile terminal; 4. Optional tags such as author copyright, robots control and canonical prevent duplicate content should also be configured reasonably.

When encountering HTML verification errors, you must first clarify the problem and correct it according to the specifications. 1. When the required attributes are missing, the src and alt and a href of img should be completed; 2. When the tag nesting is incorrect, the structure should be clarified and the tags should be closed correctly to avoid confusion in nesting block-level elements; 3. When using invalid or discarded tags, you should refer to the MDN document to replace it with modern writing methods, such as replacing center and font with CSS; 4. When character encoding problems, add metacharset="UTF-8" and ensure that the file is saved in UTF-8 format to solve it.

Using HTML sums allows for intuitive and semantic clarity to add caption text to images or media. 1. Used to wrap independent media content, such as pictures, videos or code blocks; 2. It is placed as its explanatory text, and can be located above or below the media; 3. They not only improve the clarity of the page structure, but also enhance accessibility and SEO effect; 4. When using it, you should pay attention to avoid abuse, and apply to content that needs to be emphasized and accompanied by description, rather than ordinary decorative pictures; 5. The alt attribute that cannot be ignored, which is different from figcaption; 6. The figcaption is flexible and can be placed at the top or bottom of the figure as needed. Using these two tags correctly helps to build semantic and easy to understand web content.
