DEV Community

Rita Kairu
Rita Kairu

Posted on • Updated on

The The Difference Between <script></script> And <script src=""></script> in HTML

In HTML, the <script> element is used to include client-side JavaScript code in a web page. The way you include the script can affect when and how the script is executed, which can have implications for the page's behavior and performance. Let's compare the two methods mentioned:

1. <script> element

When you use the <script> element with a src attribute, it allows you to reference an external JavaScript file and include it in your HTML document. The syntax for this is as follows:

<script src="path/to/your/script.js"></script>
Enter fullscreen mode Exit fullscreen mode

With this method, the browser will make a separate request to fetch the external script file from the provided path. Once the script is downloaded and executed, it can manipulate the page's DOM, handle events, and perform other actions as needed.

Benefits:

  • Separation of concerns: You can keep your JavaScript code in separate files, making it easier to manage and maintain.
  • Caching: Browsers can cache external script files, which means that if multiple pages use the same script, it will be fetched only once, improving loading times for subsequent pages.

2. Inline <script>

You can also include JavaScript directly within your HTML file using the inline <script> element without the src attribute. Here's an example:

<script>
  // Your JavaScript code goes here
</script>
Enter fullscreen mode Exit fullscreen mode

With inline scripts, the JavaScript code is executed when the browser encounters it during parsing. This means that the script will be executed immediately, potentially before the whole page is loaded.

Benefits:

  • Simplicity: For small scripts, you may choose to include the code directly in the HTML to keep things simple.
  • Access to HTML elements: Since the script is part of the HTML file, it can easily access and manipulate DOM elements defined earlier in the page.

Differences:

  1. Location: The primary difference is that <script> with a src attribute references an external file, while an inline <script> contains the JavaScript code directly within the HTML file.

  2. Timing: External scripts are loaded asynchronously, which means that the browser can continue parsing and rendering the page while the script is being fetched. On the other hand, inline scripts are executed synchronously, potentially delaying the page rendering until the script is fully executed.

In general, it's recommended to use the <script> with the src attribute for most scenarios. This promotes code reusability, maintainability, and better performance due to browser caching. However, inline scripts might still be useful for small, isolated snippets of code or situations where dynamic content requires immediate execution.

Top comments (0)