[Twisted-web] Error: nevow_clientToServerEvent is not defined
(Firefox JS Console)
Donovan Preston
dp at ulaluma.com
Wed Jun 29 11:21:25 MDT 2005
On Jun 29, 2005, at 2:32 AM, Michael M wrote:
> Firstly, I love nevow, brilliant design, really just plain brilliant.
> Thanks in advance for any help with this problem.
>
> # PROBLEM
> The livepage/evil example failes with this error in the Firefox JS
> console
>
> # ERROR
> Error: nevow_clientToServerEvent is not defined
Sorry, that example is way out of date. livepage is still under heavy
development and has changed a lot in the last year or so. It has even
changed a lot since the last release (0.4.1). If you would like to
use livepage, I suggest you get a svn checkout of:
svn://divmod.org/svn/Nevow/branches/dp/livepage-completion-
notification-3
I have attached a simple example which works with this branch.
I hope to have livepage stabilized by the 0.5 release (bugfixes
notwithstanding). There is still quite a bit of work to be done
before this will actually happen though.
The reason nevow_clientToServerEvent was not defined in your tests is
because the javascript which defines it was never included in the
page. In the below example, you'll notice two render directives, one
invoking "liveid" and one invoking "liveglue". The liveid is a
fragment of javascript which embeds a unique id in every rendering of
a LivePage. It changes every time the page is rendered. The liveglue
is a fragment of javascript which never changes. It is separate from
the liveid to allow you to have one global location for the liveglue
javascript which every page references, to take advantage of browser
caches.
The other difference with this example is the ease of calling a
server-side function from javascript. Once the liveglue javascript
has been included in a page, there is a global "server" object which
has a "handle" method. The javascript in the example below was
written by hand, not generated automatically by the nevow page
rendering process. This makes it easier to hook up client-side event
handlers to server side methods.
One final difference in the example below is that now server-side
event handlers can return javascript which will be evaluated in the
browser. Previously, you had to make calls on the ClientHandle object
to send scripts to the browser (which you can still do if you need
to). The new architecture instead renders the result of a server-side
handler in a JavascriptContext. This means all the rendering
advantages Nevow provides for HTML are also possible with JavaScript
now (rendering generators, rendering multiple deferreds, much safer
quoting, etc.)
Hope all this helps.
Donovan

-------------- next part --------------
Skipped content of type multipart/mixed
More information about the Twisted-web
mailing list