cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ovi...@apache.org
Subject cvs commit: xml-cocoon2/src/scratchpad/schecoon/webapp/docs index.xml
Date Fri, 05 Apr 2002 20:33:50 GMT
ovidiu      02/04/05 12:33:50

  Modified:    src/scratchpad/schecoon/webapp/docs index.xml
  Log:
  Split the description over multiple pages.
  
  Revision  Changes    Path
  1.3       +6 -52     xml-cocoon2/src/scratchpad/schecoon/webapp/docs/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/scratchpad/schecoon/webapp/docs/index.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- index.xml	28 Feb 2002 01:33:09 -0000	1.2
  +++ index.xml	5 Apr 2002 20:33:50 -0000	1.3
  @@ -2,6 +2,12 @@
   <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.0//EN" "dtd/document-v10.dtd">
   
   <document>
  +  <header>
  +    <title>Apache Cocoon - Control Flow</title>
  +    <authors>
  +      <person name="Ovidiu Predescu" email="ovidiu@apache.org"/>
  +    </authors>
  +  </header>
     <body>
       <s1 title="Schecoon - Cocoon with control flow">
         <p>Schecoon is an attempt to add advanced control flow
  @@ -33,58 +39,6 @@
         <em>continuations</em>, Schecoon tries to solve this problem,
         and promises to allow the control flow in Web applications to be
         modeled as a normal program.</p>
  -
  -      <s2 title="What are continuations?">
  -
  -	<p>A continuation is a way to represent what is the processing
  -	that still needs to happen. Think of a continuation as an
  -	object that, for a given point in your program, contains a
  -	snapshot of the stack trace, including all the local
  -	variables, and the program counter. You can not only store
  -	these things in the continuation object, but also restore the
  -	execution of the program from a continuation object. This
  -	means that the stack trace and the program counter of the
  -	running program become the ones stored in a continuation.</p>
  -
  -	<p>By resuming the processing stored by a continuation object,
  -	you essentially resume the program from the point it was
  -	stopped. This allows you to write programs that do something
  -	like this:</p>
  -
  -	<source><![CDATA[
  -    // some processing going here
  -    ...
  -->  send-page("response.xml");
  -    ...
  -    // some other processing here
  -    ...
  -]]></source>
  -
  -	<p>With continuations in the language, you can essentially
  -	store the continuation of <code>send-page</code> (think of all
  -	the stack trace, and the program counter), put it in a global
  -	hash table associated with an id. The id is then encoded in
  -	the <code>response.xml</code> page as an URL. When the user
  -	clicks on that URL, on the server side the associated
  -	continuation is resumed. Resuming the processing happens as if
  -	nothing was stopped, you get all the stack trace back, and all
  -	the local variables.</p>
  -
  -	<p>So instead of using beans to store things in session, you
  -	use normal variables in a program. Since each user has its own
  -	version of the program, all the local variables in the program
  -	are separate between users.</p>
  -
  -	<p>With this approach clicking the <em>Back</em> button in the
  -	browser is no longer a hassle to deal with for you as a
  -	server-side programmer. They will simply refer to past
  -	continuations objects, which have their own state of the local
  -	variables.</p>
  -
  -	<p>Since continuations are objects, you can also store them in
  -	a database, for really long-lived session, just like you do
  -	with session beans.</p>
  -      </s2>
   
       </s1>
     </body>
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org


Mime
View raw message