diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2010-11-17 15:09:18 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2010-11-17 15:09:18 +0000 |
commit | 4121f34ac005ed0af727267fd96d9f5492664cce (patch) | |
tree | 9dc624bb71949fff8d01ce8829a211cc3bf5d760 | |
parent | e077f36436dda2461ffeeb44fac3f55f21e94850 (diff) |
libs/web: make apply_xhr less aggressive, only rerequest status if previous response returned
-rw-r--r-- | libs/web/luasrc/view/cbi/apply_xhr.htm | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/libs/web/luasrc/view/cbi/apply_xhr.htm b/libs/web/luasrc/view/cbi/apply_xhr.htm index 11851ad810..d519a5f59c 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); } ); ]]></script> |