OutputCache kikapcsolása POST esetén

Ha OutputCachet használsz ASP.NET-ben az utólagos teljesítményfokozásra, akkor jobb ha tudod, hogy alapértelmezetten nem csak a GET-ek, hanem a POST-ok válaszait is gyorsítótárazza (ráadásul külön-külön, erről Gincsai Gábor barátom tudna mesélni). Ebben az a kellemetlen, hogy a PostBackjeid valójában semmilyen eseményt nem váltanak ki szerveroldalon: nem fut le a Page_Load, nem futnak a gombok eseménykezelői stb. Én ez ellen így védekezek:

 

    void Application_BeginRequest( object sender, EventArgs e )
    {
        if( Request.RequestType.ToUpper() != "GET" )
        {
            Response.Cache.SetNoServerCaching();
            Response.Cache.SetNoStore();
        }
    }

A Global.asax-ban feliratkozok minden bejövő kérésre, és ha az nem GET, akkor letiltom a válasz szerveroldali cache-elését, valamint kiküldöm a Cache-Control: no-store HTTP headert a biztonság kedvéért.



Dávid Zoltán

Dávid Zoltán Mérnök Informatikusként végeztem a BME-n, jelenleg webfejlesztéssel és gépi tanulással foglalkozom.

2009.07.22. 17:06:19 | Permalink | Hozzászólások: 0 | Tárgyszavak: ,


  • SQL backup dátum formázással parancssorból

    Balássy György (MS RD, ASP.NET MVP, MCTS) Szervert frissítettünk és úgy határoztunk, hogy nem csak a webszervert cseréljük le IIS7-re, hanem az adatbázis kiszolgálót is SQL Server 2008. Ezek után nem volt mit tenni, a backup szkripteket is illett migrálni, hiszen az osql.exe már egy ideje feketelistán van. Tovább »
  • Lassú ASP.NET oldal vizsgálata Trace-szel

    Dávid Zoltán Egy nagyon lassú oldalt kellett megvizsgálnom. Az ASP.NET oldalak legfontosabb eseményei között eltelt idő jó kiinduló pont lehet ilyenkor. Ezt nagyon könnyen megnézhetjük a beépített ASP.NET Trace segítségével. A lassú oldal vonatkozó idejei itt láthatók. 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