Calcolare il tempo di lettura di un testo con JavaScript

In questo articolo spiegheremo come programmare un interessante e curioso script per il calcolo del tempo di lettura di un testo o frase con JavaScript, cioè fare in modo che il sistema elabori una determinata area di testo e restituisca un valore temporale in minuti e secondi, riferito al tempo di lettura medio che un utente impiegherebbe.

Ovviamente il calcolo del tempo di lettura con JavaScript restituirà esclusivamente una stima, in base a valori preimpostati, determinando quante parole riuscirebbe una persona media a leggere in un minuto.

Vediamo in dettaglio questo script.

Calcolo del tempo di lettura di un testo con JavaScript

Per determinare quanto tempo impiegherebbe un utente medio a leggere un testo o una frase, ipotizzeremo una velocità di lettura compresa tra i 220 e i 230 parole al minuto (secondo statistica). Questo vale esclusivamente per la lettura di caratteri digitali, non scrittura a mano.

Per fare questo dovremmo sapere di quante parole è composto il testo interessato. Per questo motivo ci risulterà molto utile un conta caratteri e parole.

Tuttavia, per fornire il codice più completo possibile, integreremo il conta parole nel seguente script, con aggiunta del calcolo del tempo di lettura.

Il codice verrà suddiviso in tre sezioni:

  • Funzione per il conteggio delle parole di testo (opzionale);
  • Funzione per la conversione dei valori numerici in valore temporale;
  • Elaborazione del tempo di lettura;

A fondo pagina potrai trovare il codice completo.

Funzione per il conteggio delle parole

Qui di seguito un semplice script per il conteggio delle parole di una frase. Questo script ci servirà per il calcolo del tempo.

var frase = "Quel ramo del lago di Como, che volge a mezzogiorno, tra due catene non interrotte di monti, tutto a seni e a golfi, a seconda dello sporgere e del rientrare di quelli, vien, quasi a un tratto, a ristringersi, e a prender corso e figura di fiume, tra un promontorio a destra, e un’ampia costiera dall’altra parte; e il ponte, che ivi congiunge le due rive, par che renda ancor più sensibile all’occhio questa trasformazione, e segni il punto in cui il lago cessa, e l’Adda rincomincia, per ripigliar poi nome di lago dove le rive, allontanandosi di nuovo, lascian l'acqua distendersi e rallentarsi in nuovi golfi e in nuovi seni - Promessi Sposi - Manzoni";

 frase = frase.replace(/[&/#,+()$~%.'":*?<>{}]/g,"");
 var nParole = frase.split(" ").filter(function(n) { return n != "" }).length;

 console.log(nParole);    // 116

Funzione dei numeri in valore temporale

Come anticipato, la seguente funzione serve a convertire i valori numerici decimali del calcolo parole/minuto (che vedremo nel prossimo paragrafo) in un valore temporale leggibile (in minuti e secondi).

function convTempo(m){
  var e = m < 0 ? "-" : "";
  var min = Math.floor(Math.abs(m));
  var sec = Math.floor((Math.abs(m) * 60) % 60);
  return e + (min < 10 ? "0" : "") + min + ":" + (sec < 10 ? "0" : "") + sec;
 }

console.log(convTempo(15.95))    // 15:57

Calcolo tempo di lettura

Il calcolo del tempo di lettura è dipendente dalle precedenti funzioni descritte (Tuttavia è possibile riadattare facilmente il codice escludendole, ma ottenendo un risultato più grezzo).

 const paroleAlMin = 220;   
                        // velocità di lettura media

 var tempoLettura = nParole/paroleAlMin;    
                        //  116/285

console.log(convTempo(tempoLettura));
                        // 00:31 (31 secondi per la lettura della nostra frase)

Da notare attentamente il valore “220” della variabile costante “paroleAlMin“. Questo numero determina la velocità di lettura media di un utente, ovvero le parole che riesce a leggere in un minuto.

Dunque, il tempo di lettura del primo paragrafo dei promessi sposi si aggira sui 30 secondi. Il tempo reale può variare da persona a persona, ma generalmente oscilla su quel valore.

Codice completo

Qui in basso (per i più frettolosi) il codice descritto nei precedenti paragrafi per la stima del tempo di lettura di un testo con JavaScript.

 //frase esempio estratta da "I promessi sposi"
var frase = "Quel ramo del lago di Como, che volge a mezzogiorno, tra due catene non interrotte di monti, tutto a seni e a golfi, a seconda dello sporgere e del rientrare di quelli, vien, quasi a un tratto, a ristringersi, e a prender corso e figura di fiume, tra un promontorio a destra, e un’ampia costiera dall’altra parte; e il ponte, che ivi congiunge le due rive, par che renda ancor più sensibile all’occhio questa trasformazione, e segni il punto in cui il lago cessa, e l’Adda rincomincia, per ripigliar poi nome di lago dove le rive, allontanandosi di nuovo, lascian l'acqua distendersi e rallentarsi in nuovi golfi e in nuovi seni - Promessi Sposi - Manzoni";

//conteggio delle parole nella frase
 frase = frase.replace(/[&/#,+()$~%.'":*?<>{}]/g,"");
 var nParole = frase.split(" ").filter(function(n) { return n != "" }).length;

//funzione per la conversione del tempo
function convTempo(m){
  var e = m < 0 ? "-" : "";
  var min = Math.floor(Math.abs(m));
  var sec = Math.floor((Math.abs(m) * 60) % 60);
  return e + (min < 10 ? "0" : "") + min + ":" + (sec < 10 ? "0" : "") + sec;
 }

// velocità di lettura media (parole al minuto)
 const paroleAlMin = 220;

 var tempoLettura = nParole/paroleAlMin;    

console.log(convTempo(tempoLettura));  // 00:31

Iscriviti alla nostra Newsletter qui e seguici su Facebook per aggiornamenti!


Articoli recenti:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

CAPTCHA