Aszinkron kérés leállítása

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ó.


zip AjaxCancelSampleWebSite.zip (4 kB)


Balássy György (MS RD, ASP.NET MVP, MCTS)

Balássy György (MS RD, ASP.NET MVP, MCTS) Villamosmérnök, a BME Automatizálási és Alkalmazott Informatikai Tanszékén webportálok fejlesztését oktatja. 2000 óta foglalkozik a Microsoft .NET platformjával, melynek meghonosításában jelentős szerepet vállalt előadóként, konzulensként és A .NET Framework és programozása című könyv társszerzőjeként. Az MSDN Kompetencia Központon belül a Portál Technológiák Csoport vezetője, szakterülete web alapú rendszerek fejlesztése és üzemeltetése. 2004-ben Magyarországon elsőként kapta meg a Most Valuable Professional címet, majd 2005 óta a Microsoft magyarországi regionális igazgatója. Publikációi a Technet Magazinban, az MSDN Kompetencia Központ honlapján és szakmai blogjában olvashatóak.

2009.01.22. 13:08:55 | Permalink | Hozzászólások: 0 | Tárgyszavak: ,


  • Futtatás közvetlenül Solution Explorerből

    Balássy György (MS RD, ASP.NET MVP, MCTS) Az egyik futó projektünkben elég sok batch fájlt írtunk a szokásos napi feladatok automatizálásra és miután meguntam, hogy a Visual Studioból nem lehet közvetlenül futtatni ezeket, hozzáadtam egy új menüpontot a Solution Explorer helyi menüjéhez. Tovább »
  • IIS7 UrlRewrite és ASP.NET postback

    Balássy György (MS RD, ASP.NET MVP, MCTS) Az IIS 7-hez kiadott UrlRewrite modul számos előnnyel rendelkezik: az alkalmazástól független, XML-ben konfigurálható, regex alapú, van hozzá GUI, nem csak rewrite-ot, hanem redirectet is tud és még sorolhatnám. Mivel a webkiszolgálóba épül be, tetszőleges platformon íródott alkalmazással használható, így kiválóan működik ASP.NET-tel is. Mindössze csak a postback-kel van gond. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások