[5127] in www-talk@info.cern.ch

home help back first fref pref prev next nref lref last post

Progress reporting in future HTTP

daemon@ATHENA.MIT.EDU (Bob Kanefsky)
Wed Aug 10 03:13:46 1994

Date: Wed, 10 Aug 1994 09:08:39 +0200
Errors-To: listmaster@www0.cern.ch
Errors-To: listmaster@www0.cern.ch
Reply-To: kanef@ptolemy-ethernet.arc.nasa.gov
From: Bob Kanefsky <kanef@ptolemy-ethernet.arc.nasa.gov>
To: Multiple recipients of list <www-talk@www0.cern.ch>

How about adding progress report feedback as an option to the future HTTP spec?
Some browsers already do some progress reporting (X Mosaic's "read 123456 of
98765 bytes") when they know how far they have to go, but suppose the server
is running a script that takes some amount of time that the client has no
 way of knowing.  The server may know that it has done 500 out of 5000 items,
and it would be nice to provide the information to the client.

The HTML could look like this, for example.
As soon as the computation starts, either an HTTP header like
        NOTING-PROGRESS: Searching database
or maybe an HTML tag would be better, like
        <NOTING-PROGRESS DESCRIPTION="Searching database" NOUN="record" VERB="fetching">
Later, the server would send, intermingled with the real text (but not inside a tag)
        <NOTE-PROGRESS 100/5000>
and later
        <NOTE-PROGRESS 500/5000>
and still later
        <NOTE-PROGRESS 900/5000>
and finally
        </NOTING-PROGRESS>
and it would ensure that output packets are sent every few seconds
even if they're not full (that is, fflush(stream) in C, (force-output stream)
in Lisp, and so on).

The tags would not be rendered, of course.  The client could ignore the
information or present it to the user in any of a number of ways:

1.  A progress bar, like the Macintosh Finder or the Symbolics Lisp Machine.

2.  An animation of an hourglass sifting sand, or a drinking glass filling up,
    or a watch hand turning 360 degrees, or a day/night terminator moving on
    Mosaic's rotating globe, etc.

3.  A printed estimate of time remaining, like many applications
    including Mac ZTerm's zmodem display
        Time elapsed / remaining:  1:23 / 4:56
    where the first number counts up at a constant rate and the
    second counts down at a non-constant rate as the estimage changes.

The verb and noun could optionally be displayed by the client, as in
"Now fetching Record 500 of 5000 records".

-- 
				      --Bob Kanefsky (Recom Technologies)
					Artificial Intelligence Research Branch
					NASA Ames Research Center

home help back first fref pref prev next nref lref last post