Try this: replace $(function() { $('.dynamicsparkline').everyTime(1000,function(i) { var a = [10,9,8,7,6,5,4]; var b = [0,0,0,0,0,0,0] var j = 2+i%5; for(var k=0; k<b.length; k++) { b[k] = a[k] %j;} $(this).sparkline(b); }); });
with $(function() { $('.dynamicsparkline').everyTime(1000,function(i) { $.getJSON('{{=URL(r=request,f='call/json/ datapoints')}}/'+i, function(data) { var b = [0,0,0,0,0,0,0] var j = 2+i%5; for(var k=0; k<b.length; k++) { b[k] = data.a[k] %j;} $(this).sparkline(b); }); }); }); AND @service.jsonrpc ## or is xmlrpc easier? def datapoints(j): return [n%j for n in [10,9,8,7,6,5,4]] WITH @service.json def datapoints(j): return dict(a=[10,9,8,7,6,5,4]) On May 14, 3:32 pm, MikeEllis <michael.f.el...@gmail.com> wrote: > Hi, > I'm trying to create an application that displays live sparklines > (small inline graphs). A typical page might have a dozen or so of > these updating every few seconds, so it seems like either jsonrpc or > xlmrpc is the right thing to use. > > As a test, I've currently got sparklines updating on the client side > using the jquery.sparkline and jquery.timers plugins. The code to > make it work is pretty straightforward. After including the > aforementioned plugins at the top of web2py_ajax.html, I can create a > sparkline that updates once a second with code at the bottom of > web2py_ajax.html like the following: > > <script type="text/javascript"> > /* <![CDATA[ */ > $(function() { > > $('.dynamicsparkline').everyTime(1000,function(i) { > var a = [10,9,8,7,6,5,4]; > var b = [0,0,0,0,0,0,0] > var j = 2+i%5; > for(var k=0; k<b.length; k++) { b[k] = a[k] > %j;} > $(this).sparkline(b); > }); > }); > /* ]]> */ > </script> > > and in my view the following code: > > <p> > Sparkline with dynamic data: <span class="dynamicsparkline">Loading..</ > span> > </p> > > displays a nice little wiggly graph that changes once a second. Just > the effect I'm looking for. > > So my question is this: What's the most straightforward way to > rewrite this trivial little demo so the data calculation takes place > server side? Clearly the work would be done by a function that looks > something like the following: > > @service.jsonrpc ## or is xmlrpc easier? > def datapoints(j): > return [n%j for n in [10,9,8,7,6,5,4]] > > but what plugins, initializations and function calls are needed > client-side to replace the lines in my javascript example that fill > the 'b' array with the values to be plotted? > > Thanks, > Mike