2009-12-26 6 views
2

Sur mon ordinateur portable, j'ai une application qui fait 7 requêtes AJAX GET vers un seul script PHP à peu près au même moment (différence de millisecondes). Ils reviennent tous avec succès avec le résultat que je veux.Les requêtes AJAX se bloquent lorsqu'elles sont servies rapidement

Puis j'ai déplacé ce script sur un serveur (Windows Server) exécutant Apache et PHP. Cependant, ce processus se bloque lorsque je fais les mêmes requêtes AJAX. Cependant, si je fais chaque demande individuellement, ils reviennent tous avec succès! Quelque chose ne veut pas que je fasse tout 7.

Pourquoi cela se produit-il? Quelles variables de configuration dans les PHP.ini et httpd.conf puis-je rechercher pour déterminer de quoi il s'agit?

Merci

+1

Pas une réponse à votre question, mais pourquoi envoyer 7 demandes en même temps ? Ne pourriez-vous pas regrouper ceux-ci en un seul, qui renverrait toutes les informations dont vous avez besoin? (Le jour où vous avez beaucoup d'utilisateurs, ce serait beaucoup mieux pour votre serveur) –

+0

Très bonne question. –

+0

Les demandes envoyées dépendent fortement de l'utilisateur et sont aléatoires, je ne peux pas changer cela. – Abs

Répondre

5

Je pense que le problème pourrait être du côté du navigateur.

La plupart des navigateurs ont une limite de 2 connexions simultanées lorsqu'ils parlent au même serveur. Lorsque vous avez déplacé votre application sur le serveur, la latence supplémentaire a peut-être chevauché vos requêtes AJAX, qui étaient diffusées rapidement sur localhost.

Vous pouvez consulter ces articles:

+0

Intéressant, je n'étais pas au courant de ça. +1 –

+0

Très intéressant, je n'étais pas au courant de ça non plus! – Abs

+1

Il est également écrit dans la spécification HTTP, section 8.14 dernier paragraphe: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html –

1

Le serveur peut avoir un throttler en place pour maintenir des demandes excessives de venir trop rapidement.

1

Peut-être que votre configuration Apache limite le nombre de connexions simultanées à partir de la même adresse IP, ou même de Windows. Quelle version de Windows est-ce? Quel type d'installation Apache, autonome ou dans le cadre de XAMPP?

+0

Ordinateur portable = Windows XP et l'autre machine = Windows Server 2003. Est-ce que cela pourrait être dû au "KeepAliveTimeout: Nombre de secondes pour attendre la prochaine requête du même client sur la même connexion." - ou est-ce légèrement différent? – Abs

+0

Portable = WAMP et autre Machine = Standalone (Apache et PHP). PHP utilisé comme un module. – Abs

+0

Ça sonne bien, essayez de jouer avec ça. Cela conduirait à ce que les 7 connexions soient traitées l'une après l'autre, et non simultanément. –

Questions connexes