Question

J'ai une application .NET que l'accès des méthodes situées sur les gestionnaires à travers des appels AJAX. Ce appels AJAX sont tirés, en général, lorsque l'utilisateur clique sur certains boutons. Mon problème se produit lorsque l'utilisateur clique sur les boutons plus d'une fois. Il bousille tout mon état object's.

Comment u prendre soin? Je sais que je peux bloquer l'utilisateur clique jusqu'à ce que le premier appel est terminé, mais je voudrais trouver une solution pour prendre soin de cette question dans le côté serveur. Toute idée?

Merci!

Était-ce utile?

La solution

Je crois que cela est mieux réalisé en utilisant le code client. Si vous utilisez jQuery puis un () peut être une solution élégante. Sinon, vous pouvez définir une variable à true lors du démarrage d'une demande et la mettre sur false lorsque vous avez terminé. éviter ensuite toutes les autres demandes tandis que la variable est définie sur true.

Le faire côté serveur ne fonctionne pas. Le serveur peut avoir terminé le traitement, mais le message n'est pas arrivé au client encore. Le client fait une nouvelle demande. Le serveur réagit comme il est nouveau. Havoc peut se produire dans des cas comme celui-ci.

Autres conseils

dans la méthode onclick, retirez le gestionnaire onclick du bouton, puis exécutez l'appel ajax en arrière-plan avec SetTimer et return true ...

lorsque l'ajax est terminée, vous pouvez éventuellement ré-attacher le gestionnaire onclick.

Utilisez jquery plug-in BlockUI. lorsque l'utilisateur clique sur le bouton première fois puis verrouiller la page de l'utilisateur. après avoir terminé la tâche utilisateur débloquer la page.

http://malsup.com/jquery/block/#

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top