Bonjour,
je débute avec JSF et je suis en train de reprendre une application développée avec.
Dans mon application web, mon problème est que si l'on "double click" sur certains les menus de navigation, alors des exceptions sont levées.
Techniquement, il semblerait que les 2 requêtes HTTP consécutives envoyées au serveur entrent en concurrence et donc l'état de certaines variables devient inconsistant. Ce problème apparaît lorsque le 2ème click est envoyé au serveur avant que le serveur n’ait eu le temps de répondre au traitement du 1er click.
Mon hypothèse actuelle est orientée vers les managed beans utilisés dans l'application (je ne maitrise pas encore le sujet ... c'est en cours. En fait, les menus principaux sont "rattachés" à des managed bean qui sont tous de type "session". Au moment de la création du bean, une certaine quantité de traitement sont effectués pour préparer les informations à afficher sur la page. D'autres traitements sont évidemment effectués lors du traitement de la page JSF (appel par JSF du code Java).
Je pense que lors du premier appel, le managed bean est éventuellement initialisé. Lors du 2ème click sur la page, ce bean est réinitialisé ou bien simplement supprimé si l’on clique sur un autre lien du menu (qui fait référence à un autre bean).
Auriez-vous une idée de la véracité de mon hypothèse ?
Auriez-vous une idée comment contourner le problème ?
Je suis actuellement en train de chercher un script JavaScript qui me permette de bloquer toute action sur la page avant la réponse complète du serveur (cela afin d'empêcher l'utilisateur de cliquer sur une action avant que sa précédente action ne soit traitée).
Merci d'avance
Partager