[Ur] AJAX style in-page replacement?
Adam Chlipala
adamc at csail.mit.edu
Sun Dec 30 08:34:14 EST 2012
On 12/30/2012 08:09 AM, Gian Perrone wrote:
> I'm wondering what the nicest way to achieve client-side content replacement is - conceptually, I have a server-side function that generates a bit of XML, and on a client-side button press, I want some the XML generated on the server-side to end up inside a<div> without a page reload.
>
> I managed to make this work by doing the RPC call in the event handler for the button click, and pushing the resulting xbody fragment into a source. The<div> then contains a<dyn ...> tag, and everything works fine.
Yes, that's the technique I'd suggest, as a literal fulfillment of your
request. In many cases, though, it would make sense for the server to
send underlying data values that are used to compute the XML client-side.
Also, for the "send XML" pattern, it would be very easy to define an
abstraction that hides the implementation details, which would probably
lead to nicer code.
> However, my first attempt was to place an<active> tag with the RPC call inside a<dyn> tag --- this appears to be disallowed (at runtime!).
>
Yes. The idea is that <active> code is run _immediately_, with no
blocking. Otherwise, how do we know what to display at that point in
the initial page state? An RPC will block, so it is disallowed.
No doubt some change to the language or standard library type signature
would allow compile-time detection of blocking in <active> code, but for
now it's a dynamic check.
More information about the Ur
mailing list