There is little difference in using one or the other way. The real difference comes from the advantages/disadvantages that each one has.
Inline scripts
- Are loaded in the same page so is not necessary to trigger another request.
- Are executed immediately.
- The async and defer attributes have no effect
- Can be helpful when you are using a server-side dynamic rendering.
External scripts
- Gives better separation of concerns and maintainability.
- The async and defer attributes have effect so if this attributes are present the script will change the default behavior. This is not possible with inline scripts.
- Once a external script is downloaded the browser store it in the cache so if another page reference it no additional download is required.
- Can be used to load client code on demand and reduce overall download time and size.