From 4121f34ac005ed0af727267fd96d9f5492664cce Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 17 Nov 2010 15:09:18 +0000 Subject: libs/web: make apply_xhr less aggressive, only rerequest status if previous response returned --- libs/web/luasrc/view/cbi/apply_xhr.htm | 48 ++++++++++++++++------------------ 1 file changed, 23 insertions(+), 25 deletions(-) (limited to 'libs') diff --git a/libs/web/luasrc/view/cbi/apply_xhr.htm b/libs/web/luasrc/view/cbi/apply_xhr.htm index 11851ad81..d519a5f59 100644 --- a/libs/web/luasrc/view/cbi/apply_xhr.htm +++ b/libs/web/luasrc/view/cbi/apply_xhr.htm @@ -20,35 +20,33 @@ $Id$ apply_xhr.get('<%=luci.dispatcher.build_url("servicectl", "restart", table.concat(configs, ","))%>', null, function() { - var intv = window.setInterval( - function() { - apply_xhr.abort(); - apply_xhr.get('<%=luci.dispatcher.build_url("servicectl", "status")%>', null, - function(x) { - if( x.responseText == 'finish' ) + var checkfinish = function() { + apply_xhr.get('<%=luci.dispatcher.build_url("servicectl", "status")%>', null, + function(x) { + if( x.responseText == 'finish' ) + { + var e = document.getElementById('cbi-apply-<%=id%>-status'); + if( e ) { - window.clearInterval(intv); - - var e = document.getElementById('cbi-apply-<%=id%>-status'); - if( e ) - { - e.innerHTML = '<%:Configuration applied.%>'; - window.setTimeout(function() { - e.parentNode.style.display = 'none'; - <% if redirect then %>location.href='<%=redirect%>';<% end %> - }, 1000); - } + e.innerHTML = '<%:Configuration applied.%>'; + window.setTimeout(function() { + e.parentNode.style.display = 'none'; + <% if redirect then %>location.href='<%=redirect%>';<% end %> + }, 1000); } - else - { - var e = document.getElementById('cbi-apply-<%=id%>-status'); - if( e && x.responseText ) e.innerHTML = x.responseText; + } + else + { + var e = document.getElementById('cbi-apply-<%=id%>-status'); + if( e && x.responseText ) e.innerHTML = x.responseText; - } + window.setTimeout(checkfinish, 1000); } - ); - }, 1000 - ) + } + ); + } + + window.setTimeout(checkfinish, 1000); } ); ]]> -- cgit v1.2.3