- [c]2014 @scottjehl, Filament Group, Inc.
- Based on Surefire Dom Element Insertion by Paul Irish
- Licensed MIT
loadJS function inline in the
You can execute code after the Script has loaded via a callback:
You can ensure ordered execution of multiple asynchronous by passing
true as the second or third parameter. Only supported in browsers that support the
async attribute (No IE8/IE9 support).:
Why not just use
<script src="..." async defer>?
defer attributes enjoy broad browser support. They're great options when all you need to do is load a script for all users, ideally in a non-blocking manner. The limitations with these attributes are:
- Some older browsers do not support
async(though defer has broader support so it's typically not a problem)
- There's no way to use these attributes to conditionally load a script, depending on feature or environmental conditions.
- There is (still) no declarative way to load scripts
async, but in order.
Number 2 above is the main reason we use
loadJS. Say you want to check if
querySelector is supported before requesting your entire DOM framework and UI scripting - you'll need to use a script loader to do that. But again, if you just want to load a script unconditionally, these attributes are recommended.
- If placed below external blocking scrips or stylesheets the download starts only after these files are downloaded and parsed. A good workaround for
asyncscript loading of crucial scripts is to inline
loadJSbefore any other stylesheets and scripts and use it either immediately or within a
- Ordered execution does not work in IE9-.
Contributions and bug fixes
Both are very much appreciated - especially bug fixes. As for contributions, the goals of this project are to keep things very simple and utilitarian, so if we don't accept a feature addition, it's not necessarily because it's a bad idea. It just may not meet the goals of the project. Thanks!