Chrome Violation handler took

di il
6 risposte

Chrome Violation handler took

Ciao sto utilizzando una pagina su Chrome e visualizzo questo avviso "[Violation] 'setTimeout' handler took 951ms", il codice funziona ma questo avviso non mi convince o non è nulla di preoccupante? La parte del codice che genera l'avviso è questa:
setTimeout(function() {
            if (didWin(current_mark)) {
                alert(current_mark + ' vince la partita!');
                scores[current_mark]++;
                updateScoreboard();
                empty();
            } else if (moves === Math.pow(grid_size, 2)) {
                alert("Pareggio!");
                empty();
            }
        }, 0);
Non capisco perchè genera l'avviso Violation handler took.

6 Risposte

  • Re: Chrome Violation handler took

    fede220 ha scritto:


    Non capisco perchè genera l'avviso Violation handler took.
    Il browser ti sta indicando che l'esecuzione della funzione che hai associato come callback a setTimeout() impiega quel tempo - stranamente molto lungo - per poter essere eseguita.

    Ci hai messo dentro un ciclo o una chiamata o qualcosa che impiega tempo per terminare l'esecuzione, scatenando così il sollevamento del warning.

    Ad esempio, se viene visualizzato un alert(), il codice non prosegue fino a quando non chiudi la finestra del messaggio, quindi direi che è del tutto normale quel tipo di avviso in questo caso (e ignoro se ve ne sono altri mancando tutto il codice delle altre procedure).

    Ciao!
  • Re: Chrome Violation handler took

    L'avviso è solo quello e infatti genera un alert() e se non clicco su OK la pagina non si aggiorna. Quindi si direi che è normale. Grazie per la delucidazione.
  • Re: Chrome Violation handler took

    fede220 ha scritto:


    L'avviso è solo quello e infatti genera un alert() e se non clicco su OK la pagina non si aggiorna. Quindi si direi che è normale. Grazie per la delucidazione.
    E' normale che dia un warning, ma cercherei di non farlo generare, ad esempio evitando l'alert() e mostrando il messaggio altrove, ad esempio in un riquadro nella pagina.

    Su dispositivi mobile poi l'alert è fastidiosissimo!
  • Re: Chrome Violation handler took

    Ho provato rimuovendo l'alert(), la pagina funziona anche senza ma meglio che lascio l'alert per far capire meglio chi ha vinto o se è pareggio, ma anche senza va bene. A me l'alert sui dispositivi mobili non da fastidio. Un consiglio mantengo l'alert o lo rimuovo?
  • Re: Chrome Violation handler took

    fede220 ha scritto:


    Ho provato rimuovendo l'alert(), la pagina funziona anche senza ma meglio che lascio l'alert per far capire meglio chi ha vinto o se è pareggio, ma anche senza va bene. A me l'alert sui dispositivi mobili non da fastidio. Un consiglio mantengo l'alert o lo rimuovo?
    Hai mai visto un gioco che per visualizzare il vincitore "facendolo capire" usa qualcosa di anche lontanamente simile a un alert?
    Piuttosto i fuochi d'artificio con il nome in stampatello che danza!
  • Re: Chrome Violation handler took

    Ci sono i punteggi che si aggiornano e anche da li si capisce chi ha vinto.
Devi accedere o registrarti per scrivere nel forum
6 risposte