Hvordan man mere nøjagtigt estimerer læsetiden for mellemstore artikler i JavaScript

Introduktion

Læs tidsestimat er estimeringen af ​​den tid, det tager for læseren at læse en artikel. Det har været en del af Mediums kernefunktioner, siden det blev lanceret i 2013.

Som forklaret i New Yorker :

Jo mere vi ved om noget - inklusive nøjagtigt hvor meget tid det vil forbruge - jo større er chancen for, at vi forpligter os til det.

At vide på forhånd, hvor lang tid en artikel tager at læse, hjælper med bedre tidsstyring ved at lade os planlægge længere frem.

Hvorfor skal jeg bruge et nyt script?

Ja, der er mange open source-biblioteker tilgængelige på npmmen de indeholder flere mangler.

Lad os inden det kigge på disse to artikler om Medium.

  • Læs tid - medium support
  • Læs Time and You

Ovennævnte to artikler har følgende nøglefunktioner

  • Gennemsnitlig læsetid (engelsk) - 265 ord pr. Min
  • Gennemsnitlig læsetid (kinesisk, japansk og koreansk) - 500 tegn / min
  • Billedlæsetid - 12 sekunder for det første billede, 11 for det andet og minus et ekstra sekund for hvert efterfølgende billede. Andre billeder tælles med 3 sekunder.

De fleste af bibliotekerne tager ikke fuldstændig hensyn til ovenstående funktioner. De bruger HTML-strenge som de er uden at udelade dens tagnavne, hvilket øger afvigelsen af ​​estimering fra den oprindelige værdi.

Kode

Koden kan opdeles i tre dele:

  • Konstanter
  • Hjælpeprogram
  • Vigtigste

Konstanter

Konstanterne kan bruges som standard til hovedfunktionen. Billedkoden har sin egen anvendelse, som defineres senere.

Hjælpefunktioner

  1. Strip WhiteSpace

Det er en simpel hjælpefunktion til at fjerne al ledende og efterfølgende mellemrum fra den medfølgende streng.

2. Billedlæsetid

Den analyserer strengen, ser efter HTML-billedkoder baseret på standardindstillingerne i konstanterne og returnerer antallet.

Hvis billedtællingen er større end 10, beregner vi billedlæsningstiden for de første 10 billeder i faldende aritmetisk progression startende fra 12 sek / customReadTimeleveret af brugeren ved hjælp af den enkle formel n * (a+b) / 2 og 3 sek for de resterende billeder.

3. Strip tags

Dernæst kontrollerer vi, om der er HTML-tags (begge) i strengen og fjerner den for kun at udtrække ordene fra den.

4. Ordlæsetid

Denne hjælpefunktion beregner antallet af ord og kinesiske / koreanske og japanske tegn ved hjælp af de forskellige Unicode- tegnintervaller.

Tiden beregnes ved at dividere den med de ovenfor definerede konstanter.

5. Humaniser tid

Baseret på afstanden i ord kan vi beregne og returnere den humaniserede varighed af den tid, det tager at læse.

Vigtigste

Hovedfunktionen konsoliderer kun alle hjælpemetoder i den rigtige rækkefølge.

Hvor nøjagtigt er dette script?

At tage testene på HTML-strengen (fra Chrome-inspektøren) før denne artikelsektion.

Testene og siderne giver klart det korrekte skøn over de samlede ord fra den parsede HTML og antallet af billeder.

Links

Jeg har konsolideret den komplette kode på GitHub. Det er også tilgængeligt som et npm-pakke-læsningstid-estimat.

Flere af de seje ting kan findes på mine StackOverflow- og GitHub- profiler.

Følg mig på LinkedIn , Medium , Twitter for yderligere opdatering af nye artikler.

En klapp, to klapper, tre klapper, fyrre?

Oprindeligt offentliggjort på blog.pritishvaidya.com den 30. januar 2019.