Bonjour,
J'ai besoin d'afficher sur mon post client l'heure du serveur.
Pour se faire je veux reactualiser de temps à autre l'heure affichée pour rester synchro avec celle du serveur.
J'ai utilisé Ajax qui appele une servlet censée recuperer l'heure serveur. Cette heure est ensuite stockée dans une variable globale que mon javascript utilise pour l'affichage et maj de l'horloge.
Ma servlet pour récuperer l'heure serveur, va chercher des infos de session pour notemment effectuer la connexion à la base.
Pour tester j'ai effectuer cette synchro toute les 10sec. Le problème est que toute les 10sec mon horloge se remet à l'heure de la première synchronisation.
De plus de temps à autre (entre 3 et 15min ou plus) la synchro se fait bien. Je pense donc à un probleme de cache.
La question, comment faire pour éviter ce problème ? Ou si je fait une synchro toutes les 30min le problème pourra-t-il apparaître quand meme ?
Le javascript de synchro:
Un bout de la servlet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 function synchro_time() { getXhr() xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ jsHeureServeur = xhr.responseText.substr(11,8); setTimeout('synchro_time()',10000); } } xhr.open("GET","<%=request.getContextPath()%>/servlets/clock",true); xhr.send(null); }
Edit> J'allais oublier, merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ContexteSession contexteSession = ... // recuperation session Timebeann TimeBeann = contexteSession.get...(); response.getWriter().println(TimeBeann.getTime().toString()); response.getWriter().close(); }
Edit2> Avec un titre c encore mieux
Partager