2010-10-02 19 views
4

Je fais la comète interrogation longue pour récupérer des notifications du serveur. Il y a un retard important lors de la demande de nouvelles pages rapidement. La demande d'interrogation longue est conservée pendant 60 secondes. Je suis assez confiant car IE7 attend que ces requêtes soient terminées. Le délai est parti si je place la valeur MaxConnectionsPerServer dans le Registre.IE7 Ajax appels bloqués par les connexions max

J'ai essayé d'appeler abort sur les requêtes ajax lors du déchargement de la fenêtre, mais cela n'a pas fonctionné. J'ai des alertes pour m'assurer que l'abandon est appelé.

Que puis-je faire d'autre?

Répondre

3

Vous avez raison, le problème est dû à la limite de 2 connexions dans IE.

Votre meilleure option est de déplacer les demandes de longue date vers un domaine différent (ou un sous-domaine), ce qui contournera les limites de connexion. Prenant cette idée plus loin, vous pouvez utiliser des sous-domaines aléatoires avec DNS générique pour rendre la solution encore meilleure. Sachez que cela a des implications sur la sécurité pour votre code, car tous les navigateurs actuels bloquent les requêtes inter-domaines par défaut. Vos solutions de contournement incluent éventuellement cross-site HTTP requests, JSONP et diverses fonctionnalités HTML5 telles que postMessage.

J'ai décrit le problème un peu plus en détail here.

+0

Merci jvenema, j'ai déjà essayé des requêtes HTTP intersite en utilisant JSONP. Cela a fonctionné parfaitement sans SSL. Cependant, la plupart de nos clients ont besoin de SSL. J'ai dû me rabattre sur l'utilisation d'un service proxy dans le domaine du site. Peut-être que je le fais mal et JSONP peut travailler avec SSL ... Je vais devoir enquêter sur cela. Merci encore. –

+0

En outre, aucune idée pourquoi l'appel d'abandon sur la demande ne libère pas la connexion? –

+0

Si vous faites avorter la requête (xhr?), Il * devrait * libérer les choses; mais n'oubliez pas qu'il traite toujours les requêtes dans l'ordre, donc si vous avez 4 connexions de longue date ouvertes, et que vous en tuez une, les 3 autres bloqueraient toujours. Et JSONP peut fonctionner avec SSL très bien, nous le faisons tout le temps :) – jvenema