HTML - defer Attribute



HTML defer attribute is a boolean attribute that specifies the script is downloaded parallel to parsing the page, and is executed after parsing the page.

It is used only for external scripts (should only be used if the src attribute is present). In other words, when you use the defer attribute in your script tag, it tells the browser to download the script file while it continues parsing the HTML document.

If the src attribute is not present within the <script> the defer attribute would not affect it.

Syntax

<script defer></script>

Applies On

Below listed element allow using of the HTML defer attribute

Element Description
<script> HTML <script> tag is used to import script to HTML document.

Example of HTML defer attribute

Bellow examples will illustrate the HTML defer attribute, where and how we should use this attribute!

Defer attribute with script element

In the following example, we are going to use the defer attribute with the <script> element to download the script parallelly while parsing the page.

<!DOCTYPE html>
<html lang="en">

<head>
    <title>HTML 'defer' attribute</title>
</head>

<body>
    <!--HTML 'defer' attribute-->
    <h3>Example of the HTML 'defer' attribute</h3>
    <!--'defer' attribute within the script element-->
    <p>
        If the 'src' attribute is not present in
        script element, it would have no effect</p>
    <script src="index.js" defer></script>
</body>

</html>

index.js file

alert("Hello world");

Check presence of defer attribute

Considering the another scenario, where we are going to run javascript code to check whether defer attribute is present in the script element element or not.

<!DOCTYPE html>
<html lang="en">
<head>
   <title>HTML 'defer' attribute</title>
   <style>
      div {
         color: green;
         font-weight: bold;
         font-size: 20px;
      }

      button {
         width: 100px;
         padding: 15px;
         cursor: pointer;
         color: white;
         background-color: green;
         border: none;
         border-radius: 5px;
      }
   </style>
</head>
<body>
   <!--HTML 'defer' attribute-->
   <h3>Example of the HTML 'defer' attribute</h3>
   <!--'defer' attribute within the script element-->
   <p>If the 'src' attribute is not present in script
    element, it would have no effect</p>
   <div id='res'></div>
   <br>
   <button onclick="check()">
      Check
   </button>
   <script src="index.js" 
      id="demo" 
      defer>
      </script>
   <script>
      function check() {
         let x = document.getElementById('demo').defer;
         let res = document.getElementById('res');
         res.innerHTML = "Is the 'defer' attribute present" +
         "within the 'script' element or not? " + x;
      }
   </script>
</body>
</html>

Supported Browsers

Attribute Chrome Edge Firefox Safari Opera
defer Yes 18.0 Yes 10.0 Yes 3.6 Yes 6.0 Yes 15.0
html_attributes_reference.htm
Advertisements