Just a very simple example using https://github.com/axios/axios


def long_load():
    ret = DIV()
    ret.append(SCRIPT(_src=URL('static/js','axios.min.js')))
    ret.append(SCRIPT(
    """
        function DownLoadTick(e){
            document.getElementById("result").innerHTML = 
e.target.response;             
        };
              function long_load(){
            axios({
              url: 'streamer',
              timeout: 1000000,
              onDownloadProgress: DownLoadTick,
              withCredentials: true
            });
        };    
    """    
    ))
    ret.append(DIV(_id='result'))
    ret.append(BUTTON('click me', _onclick = 'long_load()'))
    return dict(ret=ret)

def streamer():
    i=0
    while True:
        # do something for a long time    
        time.sleep(1)
        yield DIV('part %s' % i).xml()
        i+=1
        if i>5: 
            yield DIV('Done!').xml()
            break






On Tuesday, February 13, 2018 at 10:28:13 PM UTC+3, Ramos wrote:
>
> Hello i have a controller that scans a lot of databases searching for some 
> data.
> The view in the end gets that data a makes a dashboard.
>
> If the controller takes 10 minutes , the view is blank for 10 minutes and 
> that is not a good thing for the user.
>
> How can i have the controller to send the data to the view and the view to 
> display data as it is being calculated from the controller?
> Is it possible in a simple manner?
>
>
>
> Regards
> António
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to