Servlets et requêtes - Question basique (?)

Servlets et requêtes - Question basique (?) - Java - Programmation

Marsh Posté le 12-04-2006 à 11:30:18    

Bonjour !
 
J'ai quelques petites questions :
 
Imaginons que j'ai une servlet qui affiche deux bouton sur le navigateur du client :
 
- Le bouton 1 permet de faire un calcul (effectué par le serveur) extrêmement précis mais extrêmement long (plusieurs 10aines de secondes disons)
- Le bouton 2 permet de faire un clacul (toujours effectué par le serveur) moins précis mais beaucoup plus rapide.
 
 
Cas n°1 :  
 
L'utilisateur arrive sur la page générée par cette servlet et clic sur le bouton 1.
Au bout de 20 secondes, il en a marre, donc il clic sur le bouton 2.
 
Cas n°2 :  
 
L'utilisateur arrive sur la page générée par cette servlet et clic sur le bouton 1.
Au bout de 20 secondes, il en a marre, donc il appui sur le bouton STOP du navigateur.
 
Questions :
 
>>> Que se passe-t-il au niveau du serveur ? Le calcul va-t-il se poursuivre et être envoyé au navigateur qui jetera cette réponse puisque le client ne la veut plus ?
 
Merci !

Reply

Marsh Posté le 12-04-2006 à 11:30:18   

Reply

Marsh Posté le 12-04-2006 à 13:33:43    

Commençont par le Cas 1 : Au moment où tu fait stop, le client (ton navigateur) ferme la connexion. Côté serveur le traitement continue mais au moment où la servlet va essayer d'envoyer la réponse il y aura une erreur du genre "Connection reset by peer".
 
Le cas 2 est à peut près le même car quand tu clique sur le bouton 2, le client ferme la connexion précédente et en relance une nouvelle.
Côté serveur :
 => la requete issue du bouton 1 va se terminer en "Connection reset by peer"
 => la 2ème requete va se dérouler normalement

Reply

Marsh Posté le 12-04-2006 à 13:50:24    

(ski est d'ailleurs assez pénible avec les utilisateurs neuneus qui s'excitent sur les submit, j'en viens à aimer les bidules qui neutralisent un bouton submit en javascript une fois qu'il a été cliqué.... :/)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 12-04-2006 à 14:16:33    

Ok merci.
 
Y a t'il un moyen pour stopper le traitement dans ces 2 cas ? (le calcul coûte beaucoup de ressources au serveur, et donc en économiser peut être trés utile).

Reply

Marsh Posté le 12-04-2006 à 14:21:47    

oui, tu lances ton calcul dans un thread, tu lui assignes un id (genre guid), ton formulaire rend donc la meme quasi instantanément, et tu offres à l'utilisateur un moyen d'annuler les calculs (threads) en cours...  
un poil plus complexe, donc ^^


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 12-04-2006 à 15:04:59    

un poil  :o  
 
 :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed