Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Countdown e refresh della pagina

    Salve a tutti, ho uno script in Javascript che funziona perfettamente (o quasi) il countdown viene eseguito correttamente, ma ho un piccolo problema se la pagina viene aggiornata il countdown riparte da 0, come posso fare per fare in modo che non riparta da 0 ?

    Ho pensato di poterlo salvare in un cookie ma riuscirei a farlo con php, javascript per me è completamente sconosciuto, ho provato qualcosina seguendo diversi articoli sul web ma senza risultati funzionanti.

    codice:
    var mins
    var secs;
    
    function cd() {
        mins = 0 * m("10"); // change minutes here
        secs = 1 * s(":10"); // change seconds here (always add an additional second to your total)
        redo();
    }
    
    function m(obj) {
        for(var i = 0; i < obj.length; i++) {
            if(obj.substring(i, i + 1) == ":")
            break;
        }
        return(obj.substring(0, i));
    }
    
    function s(obj) {
        for(var i = 0; i < obj.length; i++) {
            if(obj.substring(i, i + 1) == ":")
            break;
        }
        return(obj.substring(i + 1, obj.length));
    }
    
    function dis(mins,secs) {
        var disp;
        if(mins <= 9) {
            disp = " 0";
        } else {
            disp = " ";
        }
        disp += mins + ":";
        if(secs <= 9) {
            disp += "0" + secs;
        } else {
            disp += secs;
        }
        return(disp);
    }
    
    function redo() {
        secs--;
        if(secs == -1) {
            secs = 59;
            mins--;
        }
        document.cd.disp.value = dis(mins,secs); // setup additional displays here.
        if((mins == 0) && (secs == 0)) {
            window.alert("Tempo scaduto. Il test verrà terminato con esito negativo"); // change timeout message as required
            window.location = "index.php" // redirects to specified page once timer ends and ok button is pressed
        } else {
            cd = setTimeout("redo()",1000);
        }
    }
    
    function init() {
      cd();
    }
    window.onload = init;
    Grazie mille

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Vedi se qui trovi soluzione
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ti ringrazio per avermi risposto, purtroppo no non risolve il mio problema, in quanto non saprei neanche come e dove implementare il tutto.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ok, cerchi che qualcuno che ti implementi lo script, non ti resta che attende ma se fossi in te specificherei bene il funzionamento e a cosa ti serve lo script forse ci sono altre strade o soluzioni
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Il funzionamento in se è molto semplice il countdown (ora è di 10 sec per fare delle prove) successivamente sarà di 30 min viene caricato appena si apre la pagina, se scade il tempo si viene rimandati alla pagina principale, il problema è che se la pagina viene aggiornata il countdown riparte dall'inizio, ovviamente devo evitare questo se per esempio il conto alla rovescia era arrivato a 10 secondi appena la pagina si aggiorna il conto prosegue senza iniziare nuovamente da capo!!

    Spero in un vostro aiuto, ho provato a cercare qualche script già pronto ma non faceva al mio caso, quello che più si adatta è questo script che postato ma con questo piccolo problema che vorrei risolvere.

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Secondo me devi gestire la cosa lato server con una sessione a tempo e una tabella (campi session e tempo ) db ogni minuto ricarichi la pagina e decurti il campo tempo per quella session di un minuto fino ad arrivare a zero, fare a mio avviso questa operazione lato client e più complessa e più vulnerabile (visto che l'utente gestisce l'orologio del client)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Si tratta di un quiz a tempo, inizialmente pensavo di memorizzare ora di inizio e ora di fine quiz, ma vorrei mostrare all'utente il tempo attraverso un countdown che posso realizzare solo con javascript in quanto ovviamente non posso aggiornare la pagina cosi di continuo l'utente non riuscirebbe a svolgere il test.

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Io resto della mia idea, il ricarico la pagina per aggiornare il tempo potresti sostituirlo con delle chiamate ajax
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Ma cosi non è più complicato? Se aggiorno la pagina devo farlo ogni secondo o al massimo ogni minuto, con conseguente disturbo e interrompimento di compilazione del quiz da parte dell'utente, inoltre se aggiorno la pagina perdo le risposte che l'utente ha fornito (quindi dovrei salvare sempre le risposte). Non sarebbe meglio gestire la cosa tramite javascript che non comporta nessun aggiornamento di pagina cosi continuo?

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    La complessità è molto relativa a quello che si conosce, per me sarebbe più facile fare quello che ho detto più che gestire i cookie (e comunque lo vedo più vulnerabile)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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 © 2025 vBulletin Solutions, Inc. All rights reserved.