2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
<html xmlns="http://www.w3.org/1999/xhtml">
6
<title>Nevow Athena from Scratch, or The Evolution of a Chat Application</title>
10
<h1>Nevow Athena from Scratch, or The Evolution of a Chat Application</h1>
12
<h2>The <q>Chat Tutorial</q> Series</h2>
15
Athena is the JavaScript engine behind Nevow, providing a great deal of
16
resources and power to the developer of asynchronous web applications. To
17
demonstrate this, we are using a web chat application as our primary example
18
in this tutorial. The tutorial is split into several parts: a few introductory
19
pages and then independent (but related) tutorials of increasing complexity.
25
<li><a href="intro.xhtml">Introduction</a></li>
26
<li><a href="concepts.xhtml">Concepts of Athena: AJAX, COMET, and Python</a></li>
27
<li><a href="env.xhtml">Setting Up the Tutorial Environment and Running Tutorial Source Code</a></li>
30
<li><a href="part00/index.xhtml">Toy <q>Echo</q> Application </a></li>
31
<li><a href="part01/index.xhtml">Simple Chat and Two-Way Communications</a></li>
36
Nevow's predecessor was Woven (and prior to that, WebMVC). Woven had something
37
called <code>LivePage</code> that was doing DOM manipulation as far back as
38
2002. In early 2003, Woven event handlers supported sending JavaScript back to
39
the user's browser, allowing pages to be updated in response to user-generated
40
events. The earliest publicly visible revisions of Nevow made use of XHR
41
(XMLHttpRequest) in early 2004. These facts are notable because Nevow was using
42
AJAX a year before the term was coined in 2005 and had working code in 2002 and
43
2003 that predated Netscape publishing articles on what they called <q>Inner
44
Browsing</q> where all navigation takes place withing a single page.
48
Again taking the lead, Athena offers features which developers cannot find
49
elsewhere. In this series, we attempt to expose these excellent qualities
50
to the world of application