Comment activer deux fonctions JavaScript en parallèle?

Quelqu'un peut me dire comment activer deux (ou plus) fonctions JavaScript AJAX en parallèle?

Ce n'est pas possible. Javascript ne peut fonctionner que dans un seul thread et il n'y a aucun moyen de faire fonctionner deux fonctions en parallèle. Vous devez faire un appel puis l'autre. Les rappels de ceux-ci seront appelés (pas nécessairement dans le même ordre avec les méthodes d'appel), lorsque les données ont été retournées ou une erreur / délai d'attente se produit. Ce n'est que lorsqu'un rappel est terminé que le second sera autorisé à s'exécuter.

Gardez également à l'esprit que les navigateurs limitent le nombre d'appels actifs d'ajax. Donc, si vous essayez de faire trop d'appels ajax, on peut attendre (bloquant tout code javascript) pour que d'autres appels soient terminés.

Rechercher des travailleurs sur le Web. Ce sont une nouvelle fonctionnalité dans les navigateurs modernes et peuvent ne pas être disponibles dans les anciens.

C'est ce que vous cherchez?

setTimeout('JsFunction1(val);', 0); setTimeout('JsFunction2(val);', 0); 

L'utilisation de plusieurs «setInterval» peut rendre la gestion parallèle possible, même si elle peut toujours fonctionner sur un seul noyau. Le code suivant est un exemple de parallélisation d'une fonction func avec un tableau de données 'data'. Pour l'exécuter, utilisez Parallel (func, data) où func est le nom de votre fonction globale et les données sont un ensemble de données chacune comme entrée pour func.

 var i_array=new Array(); function Parallel(func,datas){ $(datas).each(function(i,v){ i_array[i]=setInterval(function(){ clearInterval(i_array[i]); window[func](datas[i]); },10); }); } 

Voici un test jsfiddle . L'horodatage en nombres entiers montre que les deux ajax étaient en parallèle.

Utilisez window.open () pour appeler une nouvelle page. Cette page appellera la première fonction js. Après que window.open () appelle la deuxième fonction, vous n'attendez pas techniquement que la première fonction soit terminée. Vous attendez simplement que window.open () s'exécute, puis la seconde sera exécutée.

Javascript s'exécute en tant que thread unique, si les demandes que vous souhaitez créer ne comportent pas d'IO. Dans ce cas, il n'est tout simplement pas possible, s'il existe une opération d'E / S, vous pouvez très bien exécuter les deux fonctions l'une après l'autre, La nature même de javascript va commencer à exécuter la fonction suivante quand elle attend IO. Habituellement, dans des langues qui supportent le filetage, la même chose se fait automatiquement pendant la période de repos de la CPU pour un thread.