Mercurial > urweb
view tests/DynChannel.ur @ 2225:6262dabc08d6
Simplify example.
author | Ziv Scully <ziv@mit.edu> |
---|---|
date | Fri, 27 Mar 2015 11:19:15 -0400 |
parents | 3dd041b00087 |
children |
line wrap: on
line source
table channels : {Id : int, Channel:channel xbody} fun dosend (s:string) : transaction unit = c <- oneRow1 (SELECT * FROM channels); debug ("Sending " ^ s ^ " through the channel..."); send c.Channel <xml>{[s]}</xml> fun mkchannel {} : transaction xbody = c <- channel; s <- source <xml/>; dml( DELETE FROM channels WHERE Id >= 0); dml( INSERT INTO channels(Id, Channel) VALUES(0, {[c]}) ); return <xml> <button value="Send" onclick={fn _ => rpc(dosend "blabla")}/> <active code={spawn(x <- recv c; alert ("Got something from the channel"); set s x); return <xml/>}/> <dyn signal={signal s}/> </xml> fun main {} : transaction page = s <- source <xml/>; return <xml> <head/> <body> <button value="Register" onclick={fn _ => x <- rpc(mkchannel {}); set s x }/> <dyn signal={signal s}/> </body> </xml>