11548 sujets

JavaScript, DOM et API Web HTML5

Bonsoir à tous,

Imaginons que j’ai une page avec deux boutons pour charger "page#1" et "page#2" en Ajax.
Mes deux pages ont besoin de script spécifique.

Donc lors du "success" d’un appel Ajax de la "page#1", je fais un $.getScript() pour charger les .js liée.
Pour un appel de la "page#2", je fais un $.getScript() des fichier .js utile cette page.

Ma question:

Les fichers chargées par $.getScript() à chaque appel ajax, reste dans la page ou se décharge et se recharge chaque foi ? Y a-t-il des risques de bug ou d’accumulation de script au fil de l’utilisation ?
...donc, pour infos, après mes recherches, je confirme qu'il n’y a aucun cache des fonctions chargé en ajax ! le script s execute une fois lors du chargement.
Les scripts sont mis dans le la page via une balise script. Si tu veux pouvoir exécuter de nouveau un script, il faut avoir charger une fonction :

Un exemple bidon:
$(document).ready(function(){
	$('h1').click(function(){
		$.getScript("test.js", function(){
			$('a').click(replop)
		});
	});
});

<h1>Un test</h1>
<a href="text.txt">plop</a>


le fichier test.js
alert("plop");

function replop()
{
	alert("replop");
	return false;
}


En cliquant sur h1 cela charge le fichier test.js, fait une alert et attache la fonction replop au lien. Quand on clique sur le lien, replop est utilise sans besoin de recharger le script.