2009-08-17 6 views
1

J'ai un problème très inhabituel qui m'a pris un certain temps pour trouver la cause. J'ai une application web ASP.Net 3.5 fonctionnant sur Windows Server 2003. Je recevais des rapports d'utilisateurs qui disaient que l'application se rafraîchirait de temps en temps, sans intervention de l'utilisateur. C'était inhabituel car je n'ai codé aucun rafraîchissement côté client. Après beaucoup de dépannage j'ai réduit cela à un problème avec Internet Explorer (les deux 7 & 8). FF, Chrome et Opera ne présentent pas ce comportement. Fondamentalement, cela se produit seulement la première fois qu'un utilisateur visite le site sur une nouvelle instance d'IE (soit une nouvelle fenêtre ou un nouvel onglet). Si l'utilisateur accède à n'importe quelle page du site et n'interagit plus avec le site, après 6 minutes, le navigateur se rafraîchit! Après cette actualisation, tant qu'il s'agit de la même instance d'Internet Explorer, quelle que soit la page du site que vous visitez, et quelle que soit la durée de l'attente, vous ne voyez plus l'actualisation. Cela m'a vraiment déconcerté, et est devenu un problème majeur car cette application a des formulaires de saisie de données qui prennent plus de 6 minutes à remplir. Malheureusement, si l'utilisateur se fait attraper par ce bug d'actualisation, tout ce qu'ils ont entré est perdu à cause de la publication.Bizarre IE Refresh Problème sur le site ASP.Net 3.5

J'ai besoin d'aide !! Tout conseil ou option à essayer serait grandement apprécié. Merci!

(non, je ne peux pas les obliger à utiliser un meilleur navigateur car cela est un environnement d'entreprise avec des restrictions mis à utiliser IE pour les utilisateurs non techniques)

Répondre

1

Étirez-vous, mais peut-être vous avez un composant 3ème partie Cela ajoute une balise meta refresh uniquement pour IE (voir http://www.w3schools.com/tags/att_meta_http_equiv.asp (valeur de rafraîchissement)). Ou peut-être y a-t-il du code côté client généré quelque part seulement dans le cas d'IE qui place un emplacement location.reload() ou location.href = someLocation un bloc de script côté client dans votre balisage.

Avez-vous comparé le balisage HTML dans IE et et FireFox? Sont-ils les mêmes? C'est là que je commencerais. Si elles finissent par être identiques, consultez les références de script et recherchez location.reload() ou location.href.

Et en fait peut-être avant cela, exécutez IE sans Add Ons activé et voir si elle rafraîchit. Pour exécuter sans addons, faites cela à la ligne de commande, "C: \ Program Files \ Internet Explorer \ iexplore.exe" -extoff

+0

Le code source entre les navigateurs est le même. J'ai testé sur 12 machines différentes, XP et Vista, sur IE7 ou 8, et tous se comportent de la même manière. Pas de compléments non plus. J'ai vérifié pour m'assurer qu'il n'y avait pas de code de rechargement ou d'actualisation, et il n'y en a pas. Cela semble également être supporté par le fait que cela ne se produit que sur la première visite de l'instance initiale de IE. Je peux naviguer loin du site vers d'autres sites et revenir et il ne présente pas ce comportement d'actualisation. – Robert

+0

Peut-être charger Fiddler, http://www.fiddlertool.com, et voir ce qui se passe. Aussi, avez-vous AJAX sur cette page? Peut-être un UpdatePanel provoque une publication non-asynch dans IE seulement ... encore une fois un étirement. – nickytonline

+0

Qu'est-ce que je cherche dans Fiddler? Cela ne se produit pas sur une page en particulier, mais sur l'ensemble de l'application, quelle que soit la page sur laquelle l'utilisateur se trouve. Certaines pages ont AJAX, d'autres non. Cela arrive dans les deux cas. – Robert