DEV Community

jeetvora331
jeetvora331

Posted on

2

The Right Way to Put Your Script Tag <𝘴𝘤𝘳𝘪𝘱𝘵> ✔

When it comes to loading JavaScript files in a web application, it's essential to consider how to optimize the loading process to ensure a smooth user experience. One of the techniques to achieve this is by using the defer attribute, which allows the browser to parse the script while continuing to parse and render the HTML content. This can lead to better performance and faster load times. In this blog post, we will discuss the use of the defer attribute and explore different ways to load JavaScript asynchronously.

The defer Attribute

The defer attribute is a simple and effective way to load JavaScript files without blocking the rendering of the HTML content. When a script tag includes the defer attribute, the browser will not execute the script until the HTML parsing is complete. This ensures that the page layout and other resources can be loaded without being blocked by the script execution.

The page layout and other resources can be loaded without being blocked by the script execution.

The browser can continue parsing and rendering the HTML content while the script is being loaded and parsed.

Here's an example of using the defer attribute in a script tag:
<script src="script.js" defer></script>

However, the defer attribute also has some drawbacks:

  • The script will still be loaded and parsed, even if it's not needed for the initial rendering of the page.
  • If the script has dependencies, they will also be loaded and parsed, even if they are not needed for the initial rendering.

Using async

<script src="script.js" async></script>

The async attribute allows the browser to load the script asynchronously, which means that the script will be loaded and executed as soon as it's available, without blocking the HTML parsing.

Using the async attribute has its advantages:

  • The script will be loaded as soon as it's available, potentially improving the page load time.
  • The browser can continue parsing and rendering the HTML content while the script is being loaded and executed.

However, there are some potential downsides to using the async attribute:

  • The script execution order is not guaranteed, which can lead to issues if the script depends on other scripts or resources.
  • If the script has dependencies, they will also be loaded asynchronously, which can lead to complex dependency management.

Conclusion

  • Use the defer attribute when you want to load JavaScript files after the HTML parsing is complete, ensuring that the page layout and other resources are loaded without being blocked by the script execution.
  • Use the async attribute when you want to load JavaScript files as soon as they're available, potentially improving the page load time. However, be aware of the potential issues with script execution order and dependency management.

SurveyJS custom survey software

Build Your Own Forms without Manual Coding

SurveyJS UI libraries let you build a JSON-based form management system that integrates with any backend, giving you full control over your data with no user limits. Includes support for custom question types, skip logic, an integrated CSS editor, PDF export, real-time analytics, and more.

Learn more

Top comments (0)

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay