Mint bármely HTTP kérésnél, AJAX esetén is előfordulhat, hogy a válasz lassan érkezik meg a szervertől. A felhasználó türelmetlen lesz, de nem tudja, mihez nyúljon. Mivel a böngésző Stop gombját feleslegesen nyomogatja, a webfejlesztő feladata marad, hogy az AJAX-os kérés leállítására lehetőséget adjon.
Szerencsére erre van támogatás az ASP.NET AJAX-ban: a kliens oldali Sys.WebForms.PageRequestManager osztály abortPostBack() metódusát kell meghívnunk. Egy UpdateProgress vezérlőnk biztosan lesz, hiszen a felhasználót tájékoztatjuk (ugye!?), hogy valami történik a háttérben. Tegyünk rá egy kliens oldali gombot, amely egy saját JavaScript függvényt hív:
<asp:UpdateProgress runat="server"
AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="0">
<ProgressTemplate>
Frissítés folyamatban, türelem...
<input type="button" value="Mégsem" onclick="cancelRequest()" />
</ProgressTemplate>
</asp:UpdateProgress>
A függvényt akár az oldal head részében is implementálhatjuk, annyira általános:
<script language="javascript" type="text/javascript">
function cancelRequest()
{
var mgr = Sys.WebForms.PageRequestManager.getInstance();
if( mgr.get_isInAsyncPostBack() )
{
mgr.abortPostBack();
}
}
</script>
Ennyi az egész, lehet kopipésztelni minden oldalra, legyen boldog vele a felhasználó.