Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    e hai ragione, i timer javascript non possono essere precisi, devi compensare una nuova data del client ad ogni tick del timer

  2. #12
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Cioe?! Mi sono un po confuso con il compensare

  3. #13
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Originariamente inviato da torrone
    Cioe?! Mi sono un po confuso con il compensare
    Prima di tutto devi capire se ti serve assolutamente la data e l'ora del sever aggiornata al secondo se è questo quello che ti serve devi proseguire facendo chiamate Ajax tenendo in considerazione lo stress che questo ne comporta, se invece ti occorre un datario con orologio poi benissimo trovare qualche migliaio di script in rete
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #14
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Originariamente inviato da cavicchiandrea
    Prima di tutto devi capire se ti serve assolutamente la data e l'ora del sever aggiornata al secondo se è questo quello che ti serve devi proseguire facendo chiamate Ajax tenendo in considerazione lo stress che questo ne comporta, se invece ti occorre un datario con orologio poi benissimo trovare qualche migliaio di script in rete
    eh vorrei evitare di prendere uno script già fatto e volevo un attimo capire come costruirlo!


    eh vorrei evitare di prendere uno script già fatto e volevo un attimo capire come costruirlo! h vorrei evitare di prendere uno script già fatto e volevo un attimo capire come costruirlo!

    allora, io vorrei la data del server (stressa cos tanto il server una chiamata ajax per recuperare solo l'ora? )

    cosi anzichè richiamare ogni volta una pagina esterna con la data aggiorno sempre una funzione (stressa allo stesso modo il server?)

    codice:
    $(document).ready(function() {
    
    var h = 17; // orario a caso per vedere se funziona
    var m = 30; // minuti a caso
    var s = 00; // secondi a caso
    
    function mytime() {
    
    // aggiungo 1 secondo
    s = s + 1;
    
    // passati 60 secondi aggiungo 1 minuto e azzero i secondi
    if(s==60) {
       m = m+1;
       s=0;
    } 
    //passati 60 minuti aggiungo 1 ora e azzero i minuti
    if(m==60) {
       h = h+1;
       m = 0;
    }
    //passate 24 ore azzero le ore
    if(h==24){
       h = 0;
    }
    
    sec = s;
    min = m;
    hour = h;
    
    // le rendo nel formato 00:00:00
    if(s<=9) sec="0"+s;
    if(m<=9) min="0"+m;
    if(h<=9) hour="0"+h;
    
    time=hour+":"+min+":"+sec;
    
    document.getElementById("dataServer").innerHTML=time;
    
    setTimeout("mytime()",1000); 
    
    }
    
    window.mytime = mytime;
    
    /*mytime();*/ come mai richiamandola solo cosi la data non si aggiorna?
    	
    
    });

  5. #15
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    108
    Eh, non importa che stai chiedendo soltanto l'ora, è pur sempre una chiamata http al secondo.
    Fai come dice Xinod, hai la data del server, e la fai incrementare tu, e ogni, che ne so, 5 minuti, fai una chiamata al server e aggiorni l'ora con quella, e da lì incrementi nuovamente tu per 5 minuti via client. oppure calcoli la differenza dei 2 timestamp e da lì chiedi l'ora del client e sommi con la differenza

  6. #16
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Originariamente inviato da Laurianti
    Eh, non importa che stai chiedendo soltanto l'ora, è pur sempre una chiamata http al secondo.
    Fai come dice Xinod, hai la data del server, e la fai incrementare tu, e ogni, che ne so, 5 minuti, fai una chiamata al server e aggiorni l'ora con quella, e da lì incrementi nuovamente tu per 5 minuti via client. oppure calcoli la differenza dei 2 timestamp e da lì chiedi l'ora del client e sommi con la differenza
    ok il concetto l'ho capito.

    apro una pagina, e al primo avvio carico l'ora del server, poi con javascript incremento l'ora, e ogni tot minuti richiamo l'ora del server e riparto...

    qual'è il metodo migliore per chiamare l'ora dal server? e poi lavorarci con jquery/javascript?

    io ho una pagina (appunto dataServer.php) dove quando chiamata posso avere recuperare la data anche in json o come preferisco...

  7. #17
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    allora ecco una porzione di codice che ho appena buttato giù.

    Recupero la data del server con una chiamata ajax e recupero appunto i dati con json poi con la funzione che avevo fatto prima (aggiustata un pò) aggiorno la data in tempo reale.

    Sembra sia corretto, o sbaglio?

    Mi manca ora che ogni per esempio 5/10 minuti la data del server venga richiamata nuovamente, come potrei fare?

    codice:
    $(document).ready(function() {
    
    	var dati = 0;
    	
    	$.ajax({
    		type: "POST",
    		url: "../varie/dataServer.php",
    		data: dati,
    		dataType: "html",
    		success: function(json)
    		{
    
    		json = $.parseJSON(json);
    		
    			if (parseInt(json.risposta) == 1) {
    			
    				// recupero tramite json l'orario del server
    				h = json.h;
    				m = json.m;
    				s = json.s;
    
    				// funzione per la data in tempo reale
    				function dateTime() {
    				
    					s = 1 + +s;
    			
    					if(s==60) {
    						m = 1 + +m;
    						s=0;
    					} 
    					if(m==60) {
    						h =  1 + +h;
    						m = 0;
    					}
    					if(h==24){
    						h = 0;
    					}
    					
    					sec = s;
    					min = m;
    					hour = h;
    					
    					if(s<=9) sec="0"+s;
    					if(m<=9) min="0"+m;
    					if(h<=9) hour="0"+h;
    					
    					time=hour+":"+min+":"+sec;
    					$("#dataServer").html(time);
    					setTimeout("dateTime()", 1000);
    					
    				}
    				
    				window.dateTime = dateTime;
    				
    				dateTime();
    				
    			} else {
    				$("#dataServer").html("Si &egrave; verificato un errore");
    			}
    		},
    		error: function()
    		{
    			alert("Errore Ajax");
    		}
    	});
    
    });

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.