Going from "Abhishek singh" -s answer I created some snippet myself.
You can have as many js files to execute consecutively as you need.
html looks like this:
<title>Script execution sequence</title> <body> <script async data-ascript-id='2' data-src='second.js'></script> <script async data-ascript-id='1' data-src='first.js'></script> <script async src="pixel.js"></script> </body>
pixel.js:
console.log("Pixel script executed"); var aon_scripts = document.querySelectorAll('[data-ascript-id]'); if(aon_scripts.length > 0){ var next_script = document.querySelectorAll('[data-ascript-id="1"]')[0]; console.log("pixel.js found next script"); next_script.setAttribute("src", next_script.getAttribute("data-src") ); }
first.js:
console.log("Next script executed"); var current_script = document.currentScript; var this_script_data_id = current_script.getAttribute("data-ascript-id"); if(aon_scripts.length > parseInt(this_script_data_id) ){ console.log("There is more script"); var next_script = document.querySelectorAll('[data-ascript-id="'+ (parseInt(this_script_data_id) + 1) +'"]')[0]; next_script.setAttribute("src", next_script.getAttribute("data-src") ); } else{ console.log("No more scripts to execute"); }
second.js and all from there will have the same code as first.js.
Output when I have first.js and second.js the same:
pixel.js: Pixel script executed pixel.js:11 pixel.js found next script first.js:1 Next script executed first.js:9 There is more script second.js:1 Next script executed second.js:18 No more scripts to execute
If anyone wants a detailed explanation please let me know.
asyncto both and call2.jsafter1.js