Bonjour,

J'ai un soucis spécifique à IE lorsque je fais du long polling.

J’exécute un PHP via une requête ajax en jsonp qui est sensé attendre plusieurs minutes tant que sa connexion est toujours valide et qu'il n'a pas de notification à envoyer au client.

Le soucis est que si je cherche à changer de page IE freez en attendant la fin de l’exécution du script, ce qui pose un vrai problème dans le cadre d'une requête dormant sur le serveur pendant 2 ou 3 minutes.

J'ai codé un rapide test unitaire qui démontre bien le problème, disponible ici.

Le test consiste à appeler un script qui fait un sleep de 5 secondes en boucle.

Sur chrome ou FF, appuyer sur le lien reload ne demande aucune attente, on pourra simplement observer que la 1ère requête après rechargement aura le temps restant à attendre du script précédent de retard supplémentaire.

Cela du au fait que le script de la page précédente n'était pas fini, le nouveau doit donc attendre sa fin, pour ensuite commencer son sleep.

Sur IE en revanche, le navigateur freez le temps que le script se finisse, c'est illustré dans le test.

La question est donc comment éviter ce blocage et forcer IE à changer de page en ignorant tout simplement les scripts en cours.

Même en faisant un abort() sur la requête IE bloque jusqu'à recevoir la réponse..

Voilà, je m'en remet à votre expérience,
Bien cordialement.