Callback exécuter avant le script chargé
math 2000
Messages postés
2833
Statut
Membre
-
math 2000 Messages postés 2833 Statut Membre -
math 2000 Messages postés 2833 Statut Membre -
Bonjour,
j'ai besoins de charger des script js depuis un autre script js mais malgré la fonction que j'ai crée pour que les script se charge dans l'ordre.
les scripts se charge dans un ordre aléatoire que je détecte grâce à des alert() au sein de chaque js.
cela viens du fait je pense que le callback se declenche trop tot.
le callback se declenche avant tous les alert des mes scripts.
voici mon code très simple
MultipleGetScript(['tableauDeModele.js','jquery.cookie.js','jquery-ui.js','modele2.js','modeleCreator.js','modeleCreator.js','modeleCreator.js','ia.js'],function(){alert("test")});
j'ai essayer une autre manière et là mon message "tout script fait" apparaît avant les alert() de ces même scripts
le concept :j'ai un tableau qui pour chaque script enregistre "2" pour le script est non traité et "1" il est traité quand ils sont tous à un ça affiche le message
ce script charge les différents scripts en parallèle ce qui m'interesse c'est jsute que le callback s'execute après.
function MultipleGetScript(tab,callback)
{
var tab2=[];
for( var o =0;o<tab.length;o++)
{
tab2[o]=2;
}
for( var o =0;o<tab.length;o++)
{
$.getScript(tab[o],scriptFait(o));
}
function scriptFait(o)
{
tab2[o]=1
mult=tab2[0];
for( var o =1;o<tab.length;o++)
{
mult*=tab2[o];
}
if (mult==1)
alert("tout script fait");
}
}
Bien sur mon but n'est pas d'afficher des alert mais d'éviter l'erreur de fonction indefinit dans le callback d'une fonction déclarer dans un sript à chargé
merci
j'ai besoins de charger des script js depuis un autre script js mais malgré la fonction que j'ai crée pour que les script se charge dans l'ordre.
les scripts se charge dans un ordre aléatoire que je détecte grâce à des alert() au sein de chaque js.
cela viens du fait je pense que le callback se declenche trop tot.
le callback se declenche avant tous les alert des mes scripts.
voici mon code très simple
MultipleGetScript(['tableauDeModele.js','jquery.cookie.js','jquery-ui.js','modele2.js','modeleCreator.js','modeleCreator.js','modeleCreator.js','ia.js'],function(){alert("test")});
function MultipleGetScript(tab,callback)
{
var i=0;
function getScript2(i)
{
if ( i< tab.length-1)
{
$.getScript(tab[i],getScript2(i+1));
}
else
{
$.getScript(tab[i],callback);
}
}
getScript2(i);
}
j'ai essayer une autre manière et là mon message "tout script fait" apparaît avant les alert() de ces même scripts
le concept :j'ai un tableau qui pour chaque script enregistre "2" pour le script est non traité et "1" il est traité quand ils sont tous à un ça affiche le message
ce script charge les différents scripts en parallèle ce qui m'interesse c'est jsute que le callback s'execute après.
function MultipleGetScript(tab,callback)
{
var tab2=[];
for( var o =0;o<tab.length;o++)
{
tab2[o]=2;
}
for( var o =0;o<tab.length;o++)
{
$.getScript(tab[o],scriptFait(o));
}
function scriptFait(o)
{
tab2[o]=1
mult=tab2[0];
for( var o =1;o<tab.length;o++)
{
mult*=tab2[o];
}
if (mult==1)
alert("tout script fait");
}
}
Bien sur mon but n'est pas d'afficher des alert mais d'éviter l'erreur de fonction indefinit dans le callback d'une fonction déclarer dans un sript à chargé
merci
A voir également:
- Callback exécuter avant le script chargé
- Script vidéo youtube - Guide
- Retrouver mon compte copains d'avant - Forum Réseaux sociaux
- Copains d'avant qui a visité mon profil - Forum Facebook
- Perte de mes anciens accès pour Copain D'Avant - Forum Réseaux sociaux
- Avant browser - Télécharger - Navigateurs
1 réponse
j'avais oublié de mettre le callback dans une fonction *
ce qui donne pour les deux versions combiné
ce qui donne pour les deux versions combiné
function MultipleGetScript(tab,callback,sync)
{
if (!sync)
{
var tab2=[];
var cpt=0;
for( var o =0;o<tab.length;o++)
{
tab2[o]=2;
}
for( var o =0;o<tab.length;o++)
{
$.getScript(tab[o],function(){scriptFait(o)});
}
function scriptFait(o)
{
cpt++;
if (cpt==tab.length)
{
callback();
}
}
}
else
{
var i=0;
function getScript2(i)
{
if ( i< tab.length-1)
{
$.getScript(tab[i],function(){getScript2(i+1)});
}
else
{
$.getScript(tab[i],callback);
}
}
getScript2(i);
}
}