If You need change timeout interval in Ajax LOAD
===================in controller
# -*- coding: utf-8 -*- TIMES = 20 function = 'change' def remake_reload_script(timeout): return SCRIPT(''' var jelement = $("#change"); var element = jelement.get(0); var statement = "jQuery('#change').get(0).reload();"; element.timeout = %s000; clearInterval(element.timing); // stop element.timing = setInterval(statement, %s000); // start ''' % (timeout, timeout)) def change(): r = CAT( 'example by icreator@mail.ru', SCRIPT(""" if ( ! $('#change').is(':visible')) { $('#change').animate({ height: 'show' }, 1000); } """) ) upd_is = session.UPD_IS if upd_is < 3: timeout = 5 elif upd_is < 6: timeout = 20 else: timeout = 100 upd_is += 1 session.UPD_IS = upd_is r += remake_reload_script(timeout) if upd_is < TIMES: content = CAT( T('Auto-updating each %s sec') % timeout, ', ', T('times left'), ': ', TIMES - upd_is) else: content = CAT(T('Auto-updating is stoped. For start auto-updating please reload the page.')) r += DIV(content) if upd_is > 1: r += DIV( request.args(0)) if upd_is > 2: r += DIV( request.vars.get('v')) if upd_is > 3: r += DIV( T('it is very slow now')) return r def index(): r = CAT() r += DIV('LOAD with changed interval') session.UPD_IS = 0 controller = 'interval' r += LOAD(controller, function, args=['hello'], vars={'v':'WORLD'}, ajax=True, times = TIMES, timeout=1000, target=function, _style='display:none;', _class='container', ) return dict(r=r)=============== in view index.html:
{{extend 'layout.html'}}
{{=r}}
Comments (0)