Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ CGI::Push(3) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought



CGI::Push(3)                                                      CGI::Push(3)



NAME
     CGI::Push - Simple Interface to Server Push

SYNOPSIS
         use CGI::Push qw(:standard);

         do_push(-next_page=>\&next_page,
                 -last_page=>\&last_page,
                 -delay=>0.5);

         sub next_page {
             my($q,$counter) = @_;
             return undef if $counter >= 10;
             return start_html('Test'),
                    h1('Visible'),"\n",
                    "This page has been called ", strong($counter)," times",
                    end_html();
           }

          sub last_page {
              my($q,$counter) = @_;
              return start_html('Done'),
                     h1('Finished'),
                     strong($counter),' iterations.',
                     end_html;
          }


DESCRIPTION
     CGI::Push is a subclass of the CGI object created by CGI.pm.  It is
     specialized for server push operations, which allow you to create
     animated pages whose content changes at regular intervals.

     You provide CGI::Push with a pointer to a subroutine that will draw one
     page.  Every time your subroutine is called, it generates a new page.
     The contents of the page will be transmitted to the browser in such a way
     that it will replace what was there beforehand.  The technique will work
     with HTML pages as well as with graphics files, allowing you to create
     animated GIFs.

USING CGI::Push
     CGI::Push adds one new method to the standard CGI suite, do_push().  When
     you call this method, you pass it a reference to a subroutine that is
     responsible for drawing each new page, an interval delay, and an optional
     subroutine for drawing the last page.  Other optional parameters include
     most of those recognized by the CGI header() method.

     You may call do_push() in the object oriented manner or not, as you
     prefer:






                                                                        Page 1





CGI::Push(3)                                                      CGI::Push(3)



         use CGI::Push;
         $q = new CGI::Push;
         $q->do_push(-next_page=>\&draw_a_page);

             -or-

         use CGI::Push qw(:standard);
         do_push(-next_page=>\&draw_a_page);

     Parameters are as follows:

     -next_page

             do_push(-next_page=>\&my_draw_routine);

         This required parameter points to a reference to a subroutine
         responsible for drawing each new page.  The subroutine should expect
         two parameters consisting of the CGI object and a counter indicating
         the number of times the subroutine has been called.  It should return
         the contents of the page as an array of one or more items to print.
         It can return a false value (or an empty array) in order to abort the
         redrawing loop and print out the final page (if any)

             sub my_draw_routine {
                 my($q,$counter) = @_;
                 return undef if $counter > 100;
                 return start_html('testing'),
                        h1('testing'),
                        "This page called $counter times";
             }


     -last_page
         This optional parameter points to a reference to the subroutine
         responsible for drawing the last page of the series.  It is called
         after the -next_page routine returns a false value.  The subroutine
         itself should have exactly the same calling conventions as the
         -next_page routine.

     -type
         This optional parameter indicates the content type of each page.  It
         defaults to "text/html".  Currently, server push of heterogeneous
         document types is not supported.

     -delay
         This indicates the delay, in seconds, between frames.  Smaller delays
         refresh the page faster.  Fractional values are allowed.

         If not specified, -delay will default to 1 second






                                                                        Page 2





CGI::Push(3)                                                      CGI::Push(3)



     -cookie, -target, -expires
         These have the same meaning as the like-named parameters in
         CGI::header().

INSTALLING CGI::Push SCRIPTS
     Server push scripts must be installed as no-parsed-header (NPH) scripts
     in order to work correctly.  On Unix systems, this is most often
     accomplished by prefixing the script's name with "nph-". Recognition of
     NPH scripts happens automatically with WebSTAR and Microsoft IIS.  Users
     of other servers should see their documentation for help.

CAVEATS
     This is a new module.  It hasn't been extensively tested.

AUTHOR INFORMATION
     be used and modified freely, but I do request that this copyright notice
     remain attached to the file.  You may modify this module as you wish, but
     if you redistribute a modified version, please attach a note listing the
     modifications you have made.

     Address bug reports and comments to:  lstein@genome.wi.mit.edu

BUGS
     This section intentionally left blank.

SEE ALSO
     the CGI::Carp manpage, the CGI manpage




























                                                                        Page 3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026