Bonjour,

J'ai plusieurs scripts js à charger de façon asynchrone dans ma page.
(Dons celui de google-analytics qui me sert d'exemple.)

Le code de base de google-analytics est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<script>
(function() {
	var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
Du coups ça donne envie d'écrire une fonction async(src) pour rendre le code plus lisible :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<script>
function async(src) {
	var script = document.createElement('script'); 
	script.type = 'text/javascript'; 
	script.async = true;
	script.src = src;
	var s = document.getElementsByTagName('script')[0]; 
	s.parentNode.insertBefore(script, s);
}
 
async(('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js');
//async('un_autre_script');
</script>
Mais est-ce vraiment équivalent ?

Dans le code de google-analytics y'a ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
(function() {
 // CODE
})();
Qu'est ce que ça fait exactement ?