2009-10-27 10 views
3

Est-ce que quelqu'un a une stratégie ou des idées pour la gestion globale des erreurs et l'expiration des sessions dans une grande application ajax? Dans une application web traditionnelle, quand tout était un message ou un message, il est facile de gérer les erreurs et l'expiration des sessions et de présenter des messages conviviaux aux utilisateurs. Pas tellement avec les applications web modernes ajaxy. Mon application Web utilise des panneaux de mise à jour ASP.Net Ajax et des appels WCF provenant de diverses pages. L'un de ces appels ajax peut renvoyer une erreur ou la session de l'utilisateur peut être expirée. Ce que je recherche, c'est un seul composant côté client ou quelque chose qui peut reconnaître quand il y a une erreur et montrer à l'utilisateur un message amical ou reconnaître quand la session a expiré et diriger l'utilisateur vers la page de connexion. Qu'ont fait les gens pour faire face à ce genre de problème?Gestion des erreurs, Stratégie d'expiration de session dans l'application ajax asp.net

+0

Pour clarifier, je cherche un moyen général d'informer un utilisateur d'un événement (erreur ou session expire) et de lui présenter un message. Je voudrais être capable de le faire dans un seul endroit plutôt que d'écrire du code similaire dans chaque callback OnError. – Matthew

Répondre

0

Commutation de la session du tout! Cette recommandation a 2 aspects.

  1. AJAX est pas la technologie si rapide, si par session de commutation recommandation Microsoft améliore de côté serveur le temps de rendu
  2. session qui traite simultanément 2 pages ouvert fissures ajax sur deux.

Vous avez déjà mentionné les erreurs côté serveur et la liste des négatifs de session peut être continuée.

Au lieu de revoir votre code, ce qui doit vraiment être stocké en session. Je suis sûr que vous pouvez séparer les données sur 2 (nombre magique) Stockage:

  1. données qui est en permanence traversé entre le client et le serveur (par exemple analogique de clé de session). Faites-vous votre propre clé et enregistrer dans des champs cachés ou des cookies. ViewState est bon aussi, mais pour l'optimisation, je préfère contrôler ce qui est sauvegardé.
  2. Les données recueillies entre plusieurs pages, bon exemple est assistant. Accumuler des données de l'utilisateur dans la base de données ou le profil de l'utilisateur (persistant dans la base de données). Pour mon projet, nous avons développé une table TempStorage spéciale où l'utilisateur a sauvegardé les données de l'assistant, et si pour une raison quelconque l'utilisateur n'a pas fini toutes les étapes sur 3 jours, la table est nettoyée par le travail.
+0

Je ne parle pas de l'état de la session qui stocke les données temporaires, je parle de la session connectée de l'utilisateur. Cette session pourrait expirer après une période d'inactivité. Dans ce cas, j'ai besoin que l'utilisateur se reconnecte. – Matthew

+0

@Matthew - utilisateur connecté est un utilisateur avec des cookies AUTH. Donc ce n'est pas un problème de HttpSession, assurez-vous que l'utilisateur a suffisamment de temps d'expiration du cookie .ASPXFORMAUTH. – Dewfy

+0

Même encore, il est possible que la session expire et je dois être en mesure de laisser l'utilisateur savoir et présenter une page de connexion. – Matthew