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 <[email protected]> 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