Visualizzazione risultati 1 fino 2 di 2

Discussione: Aiuto JavaScript

  1. #1
    spacewars non è connesso Neofita
    Data registrazione
    16-03-2021
    Messaggi
    11

    Predefinito Aiuto JavaScript

    Salve a tutti, ho un piccolo problema con un mio file JavaScript nel mio gioco online.

    Praticamente questo script si avvia quando un'azione viene compiuta e va alla rovescia. (esempio parte da 50 minuti.)

    Però se io cambio finestra del browser nel mentre che il timer procede, quando rientro nella finestra dove ho il timer, si vede proseguire alla rovescia ma non è in tempo reale. E' come se si fermasse per il tempo che io sono stato nell'altra finestra. Aggiornando la pagina ho in realtà il tempo reale che manca.


    Come posso fare per far si che resti sempre in tempo reale?


    Il codice è il seguente:


    Codice:
    function t(){
      v = new Date();
      n = new Date();
      o = new Date();
      for (cn = 1; cn <= anz; cn++) {
        bxx = document.getElementById('bxx' + cn);
        ss = bxx.title;
        s = ss - Math.round((n.getTime() - v.getTime()) / 1000.);
        m = 0;
        h = 0;
        if (s < 0) {
          bxx.innerHTML = "-";
        } else {
          if (s > 59) {
        m = Math.floor(s/60);
        s = s - m * 60;
          }
          if (m > 59) {
        h = Math.floor(m / 60);
        m = m - h * 60;
          }
          if (s < 10) {
        s = "0" + s;
          }
          if (m < 10) {
        m = "0" + m;
          }
          bxx.innerHTML = h + ":" + m + ":" + s + "";
        }
        bxx.title = bxx.title - 1;
      }
      window.setTimeout("t();", 999);
    }
    
    var x = "";
    var e = null;
    Ultima modifica di alemoppo : 18-01-2024 alle ore 21.49.52 Motivo: +tag [code]

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    Il browser probabilmente "spegne" il tuo tab mentre non è in primo piano. La mossa corretta per risparmiare risorse.

    Ad occhio mi sembra che il tuo codice conti alla rovescia salvando un contatore in bxx.title. Prova invece a modificare il codice in modo che salvi la scadenza all'inizio, quando il contatore comincia a muovarsi. La tua funzione può usare quel dato per calcolare quanto tempo manca ad ogni refresh, ma non rischia di "perdere il conto" mentre il tab non è attivo.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •