Empecher une procedure de s'executer plusieurs fois [Résolu]

cs_blooh 4 Messages postés vendredi 23 avril 2004Date d'inscription 12 mai 2005 Dernière intervention - 12 mai 2005 à 10:40 - Dernière réponse : cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention
- 14 mai 2005 à 09:31
Bonjour,


Voila j'ai un probleme qui me parait simple... mais je reste bloqué car je ne comprends pas bien ce qu'il se passe:


J'ai un formulaire avec divers champs avec controles et un bouton valider. Probleme : ma page doit executer une procedure assez longue (insertion en base) et l'utilisateur impatient clique plusieurs fois ce qui re-execute ma procedure a nouveau avant que la fenetre ne se ferme. J'ai essayé d'utiliser des mutex mais ca n'a pas l'air de marcher, j'ai l'impression qu'a chaque fois que l'utilisateur clique, un nouveau contexte de mon programme se crée coté serveur.


Auriez-vous une solution pour empecher une procedure de type button_click de s'executer plusieurs fois en parallele (sans javascript)? Merci d'avance.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_Nurgle 1648 Messages postés samedi 6 novembre 2004Date d'inscription 28 avril 2011 Dernière intervention - 13 mai 2005 à 21:07
3
Merci
Salut



la page est renvoyée au server à chaque fois que l'utilisateur clique sur le bouton.

Le mieux serait d'utiliser du JavaScript (c'est le plus simple...)



Sinon tu peux utiliser par exemple les variables (de Session ?) pour éviter ça.

Exemple :



Sub Page_Load (Sender As Object, E As EventArgs)

Dim Renvoie As Integer = 0

End Sub


Sub Button1_Click(Sender As Object, E As EventArgs)

If Renvoie = 0 Then

Renvoie = 1

'tout ton code super long

End If

End Sub



Ainsi, une fois qu'on a cliqué, le code ne sera pas exécuté avant le rechargement de la page...normalement... (sinon on peut essayer aussi avec des variables de Session)

(tu pourrais aussi faire ça en utilisant le cache ou d'autres trucs dans ce genre...mais le mieux c'est le javascript)




Nurgle
C'est une grande folie que de vouloir être sage tout seul !

Merci cs_Nurgle 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_Nurgle
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 13 mai 2005 à 21:19
0
Merci
Pas d'accord avec toi Nurgle, moi je suis parano et aussi clickers fou, j'ai donc desactivé javascript, et quand j'ai un bouton, ben je clique autant que je peux, tant que le bouton disparait pas ...

Il ne faut jamais faire confiance au client, et tj partir du principe que le client est un pirate, donc oui faire du javascript c'est cool, mais faut toujours faire une validation coté serveur, car la on peut pas la desactiver :)

Donc la solution avec des variables sessions est bien, et puis bien plus efficace à mettre en place que le javascript (et oui je suis faineant moi)


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Commenter la réponse de jesusonline
cs_Nurgle 1648 Messages postés samedi 6 novembre 2004Date d'inscription 28 avril 2011 Dernière intervention - 13 mai 2005 à 21:39
0
Merci
...

Il ne m'était pas venu à l'idée qu'on pouvait désactiver intentionnellement JavaScript...

Dans ce cas, oui c'est sûr, c'est mieux de vérifier côté server.



(c'est vrai que j'ai l'habitude d'utiliser le javascript pour éviter trop de retours au serveur......mais si les utilisateurs se mette à tout casser...)



ça marcherais le mieux avec des variables de Session ou des variables normales (n'étant pas un grand spécialiste...)




Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Commenter la réponse de cs_Nurgle
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 13 mai 2005 à 21:44
0
Merci
le mieux est de faire le boulot 2 fois ... car on empeche la plupart des personnes de faire des requetes, et aussi les personnes qui veulent faire planter le serveur...

La sécurité : c'est tout un art ..


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Commenter la réponse de jesusonline
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 14 mai 2005 à 09:31
0
Merci
« La programmation est aujourd’hui une course entre les ingénieurs informaticiens qui essaient de construire des programmes plus grands et mieux à l’épreuve des idiots, et l’univers qui essaie de produire des idiots plus grands et plus idiots.
Jusqu’à présent, l’univers gagne. »


Rich Cook ( = jesusonline ? ^^)

Cocoricoooooooo !!!!
coq
MVP Visual C#
Commenter la réponse de cs_coq

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.