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

Reply via email to