Experimenting with RSVP
(Rapid Sequential Visual Presentation)
By Peter A. Bromberg, Ph.D.

Peter Bromberg

Back when I was in college -- what seems like eons ago -- I took the Xerox Speedreading course because I hoped it would enable me to devour more text faster, and thus be able to get something approximating a human night's sleep while studying for exams, doing required research, and the like.

This was probably the most sophisticated such course of its type at the time, and it consisted basically of a workbook and six cassette tapes. The general idea was that you were lead by the tape through the workbook and you learned to successively focus on and absorb, ultimately, entire paragraphs at a time. I remember getting up in the high 800 to 900 words per minute range with reasonably good comprehension on the tests. It really did give one an eerie sense of power. Unfortunately, just like touch - typing, if you didn't use it consistently you would eventually fall back into the old habits, and your reading speed would decline.



Recently, while cruising the Net, I ran into some articles on RSVP, which apparently became of first interest to researchers in the 1980's. The idea is simple, and can be very effective for small screens such as on PDA's and Smartphones, and that's why it seems to be seeing a resurgence of popularity. You present each word of the text to be read in a small window, centered in the window, and immediately folowing that, the next word, and so on. Some claim to achieve reading speeds approaching 1000 words per minute with this, and there has been considerable professional research on whether to make common words such as "and", "of" and "the" go by faster, as well as providing other cues such as end - of - sentence or paragraph pauses,and so on.

Not to be daunted, I figured that it wouldn't be rocket science to have a script tag in a page that loaded a script that would grab the HTML from the page it was in, use Regex to strip out all the HTML tags, and then just SPLIT all the text into a word array. The reset would simply involve a setTimeout on a function to flash the words in the array one - by - one inside a DIV tag at the proper speed.

So I whipped up some Javascript to try it out. First, here's the script, and then I' am going to let you read a very nice classic short story with the reader:

var ctr=0;
var words=null;
var speed=500;
var sText="<table><tr><td><input type=button value='read' onclick='showWords();' /></td></tr>";
document.getElementsByTagName('body')[0].insertAdjacentHTML('afterBegin', sText);
var sText2="<tr><td><input type=text value=500 onblur='setSpeed(this.value);'/>Set WPM 
(tab out, press \"READ\")<div id='showMe' align='center' style='font-size:32pt;font-face:Verdana;
background-color:AliceBlue;'></td></tr></table>"
; document.getElementsByTagName('body')[0].insertAdjacentHTML('afterBegin', sText2); function setSpeed(v) { speed=60000/v; } function getWords( ) { var htmlString=document.getElementsByTagName('BODY')[0].innerHTML; var stripped = htmlString.replace(/(<([^>]+)>)/ig,""); var words = stripped.split(' '); // for(var i=0;i<words.length;i++) //{ //document.write(words[i]+"<BR>"); // } return words; } function showWords() { window.setTimeout('showWords()',speed); if(words==null)words=getWords(); if(ctr <words.length) document.getElementById('showMe').innerText=words[ctr]; ctr++; }

To use my nifty-zippy RSVP reader, all you need to do is put <script defer src="rsvp.js"></script> tag in your page. I'm not going to bother explaining how it works because anybody can read through the code and figure it out. This really has some potential for improvement, its in its first iteration and is somewhat clunky, but it does work very nicely. Basically, when the page comes up, you are going to see a WPM (Words per minute) textbox that you should focus in, change from 500 to a higher or lower number if you want, and then TAB out and press the READ button.

And now for your RSVP reading pleasure, I present a classic short story by a classic author, with 11,662 words:

The Short Happy Life of Francis Macomber by Ernest Hemingway

Download the Solution that accompanies this article


Peter Bromberg is a C# MVP, MCP, and .NET consultant who has worked in the banking and financial industry for 20 years. He has architected and developed web - based corporate distributed application solutions since 1995, and focuses exclusively on the .NET Platform.
Article Discussion: