Question

Cette question fait suite à la précédente: Questions précédentes .

J'ai donc configuré ma page pour lancer un appel ajax afin de lancer le traitement de certains enregistrements. Et après chaque enregistrement, il met à jour une ligne dans une autre table pour suivre l'état de ce processus. Après ce premier appel ajax, j'ai un autre démarrage. C'est un Ajax.PeriodicalUpdater et il est configuré pour frapper un fichier qui interroge simplement cette ligne de la base de données et renvoie le statut du processus d'origine.

Donc, cela fonctionne parfaitement ... tant que le fichier qui fournit les mises à jour de statut se trouve en dehors de mon application actuelle. Si je mets le fichier à l'intérieur de mon application, cela ne fonctionne pas correctement. Si je regarde firebug, l’appel PeriodicalUpdater ne récupère rien tant que l’appel ajax n’est pas terminé, il se bloque et reste comme si le fichier était bloqué et ne renvoyait rien.

Toute cette application ne tourne que dans un cadre de base que nous utilisons. Rien de fou, ne gère que le routage et les aspects de base des modèles, etc. ... Ainsi, toutes ces fonctions / fichiers se trouvent dans cette application et tous ces appels ajax sont acheminés via celle-ci.

Qu'est-ce qui pourrait causer quelque chose comme ça?

Était-ce utile?

La solution

Cela peut-il être dû à la limite de connexions simultanées prises en charge par un navigateur à un domaine particulier?

Autres conseils

Ceci est dû à la sérialisation de session PHP. Les données de la session sont verrouillées jusqu'à ce que le processus PHP de chaque demande ait terminé d'écrire. Des requêtes supplémentaires dans la même session seront alors mises en file d'attente jusqu'à ce que le verrou soit libéré. ??

Si vos demandes AJAX nécessitent un accès à l'état de la session, lisez les informations dont vous avez besoin, puis utilisez session_write_close () le plus tôt possible dans votre code pour libérer ces verrous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top