0

J'ai une application ajax dynamique, et j'enregistre l'état lorsque l'utilisateur ferme la fenêtre de l'explorateur. Cela fonctionne bien dans tous les navigateurs mais dans IE il y a un problème. Après avoir fermé deux fois l'onglet de l'application, je ne peux plus me connecter au serveur. Ma théorie est que la connexion au serveur ne se termine pas pendant la fermeture de l'onglet et qu'en quelque sorte ie7 pense qu'il a 2 connexions en attente au serveur et donc met en attente de nouvelles connexions indéfiniment.ie enregistrer save onunload

Quelqu'un at-il vécu cela, une solution de contournement ou une solution?

Répondre

-1

Eh bien, vous pouvez contourner la limite de connexion assez facilement; créez simplement un domaine générique et demandez à votre application de regrouper les sous-domaines; par exemple. a.rsrc.dmvnoc.com, b.rsrc.dmvnoc.com, etc, pour mon netMail application. Sans cette astuce, le préchargement de toutes les images prend près de 30 secondes sur un réseau local (en raison de la limite de connexion faible de MSIE), mais avec cela, les images sont téléchargées en une seconde environ.

Si vous devez combiner des scripts avec cette astuce, réglez simplement document.domain sur le parent dans les nouveaux scripts. Cependant, vous pouvez toujours vouloir vérifier l'état de la modification: l'utilisateur risque de perdre sa connexion réseau ou son ordinateur risque de se bloquer. Si vous souhaitez réduire le trafic réseau, demandez au client de définir simplement un cookie qui contient l'état concerné. Vous pouvez y insérer un très grand nombre (3000 octets environ), puis le serveur l'obtient automatiquement sur la prochaine connexion. peut enregistrer les résultats (comme il le fait actuellement) et supprimer le cookie pour signaler qu'il a enregistré l'état.

1

Dans IE si vous utilisez une requête AJAX à interrogation longue, vous devez fermer la connexion XHR lors du 'déchargement'. Sinon, il sera maintenu en vie par le navigateur, même si vous naviguez loin de votre site. Ces connexions maintenues en vie provoqueront alors le blocage, car votre navigateur atteindra la limite maximale de connexion ouverte.

Ce problème ne se produit pas dans d'autres navigateurs.