2012-10-25 1 views
2

J'ai créé un tableau de bord pour mon application avec plusieurs widgets. Chaque widget ayant ses propres fonctions correspondantes. Pendant le chargement initial du tableau de bord, tous les widgets appellent leurs propres fonctions via $ (document) .ready() avec ajax. Le problème avec ce scénario est à la fois une seule fonction est exécutée et seulement après l'exécution réussie de la première fonction exécutée une seconde, comme sage toutes les fonctions restantes sont exécutées. Si j'ai 10 widgets alors tous sont affichés les uns après les autres.PHP Simultaneous Process

J'ai besoin d'exécuter toutes les fonctions simultanément en fonction de leur temps d'exécution. Ce que je veux dire, c'est qu'un widget ne doit pas attendre la fin de l'autre widget mais doit traiter et afficher les résultats simultanément au fur et à mesure que sa fonction termine son processus.

+2

Pouvez-vous poster votre exemple de code? Parce que les choses ne se précisent pas. –

+0

si le '$ .ajax' est un domaine croisé (jsonp) l'attente est nécessaire, sinon l'option' async: true' est la valeur par défaut. pouvez-vous poster votre code pour plus d'explications –

+0

Je pense qu'il n'y a pas de problème dans l'appel ajax. Le problème est que le même navigateur envoie simultanément plusieurs requêtes au serveur, mais le serveur répond aux demandes du navigateur une par une. Mais j'ai besoin de changer le comportement du serveur pour traiter plusieurs demandes simultanément. Et les fonctions sont également disponibles dans le même domaine, pas une demande inter-domaine. – Hackableweb

Répondre

3

Enfin j'ai obtenu la réponse pour le problème ci-dessus,

AM à l'aide basée sur une session de fichier, donc PHP va verrouiller les fichiers de session pour chaque demande et maintenir ce blocage jusqu'à ce que le script se termine/sorties.

Si nous devons déverrouiller le fichier de session PHP dans notre script, nous pouvons utiliser session_write_close() dans notre script. Cela déverrouillera le fichier de session et utilisera la même chose pour cette instance.

Dans le même temps la fonction session_write_close() rendra toutes les demandes en tant que série, car toutes les demandes se débattent pour le même fichier de session unique.

Donc à partir de session_write_close(), j'ai rectifié mon problème.

Merci @kalpeshpatel et @iJD pour votre réponse.