Optimization Filter vs HttpModule

Diverse persone mi hanno chiesto il perchè, in questo post, ho deciso di utilizzare un ActionFilter al posto di un HttpModule per “pulire” il markup generato da tutti gli spazi vuoti inutili, in modo da ottimizzare banda.
Le motivazioni sono piuttosto semplici: Versatilità e Performance.

Un ActionFilter mi permette di decidere con estrema flessibilità quali Actions devono far uso di ottimizzazione e quali no; procedura che sarebbe molto più scomoda e difficile da gestire con un HttpModule.
Inoltre quest’ultimo verrebbe invocato anche quando la Action del Controller fa uso dell’OutputCache, eseguendo così delle operazioni inutilmente.
Di fatto, in una situazione come la seguente, la parte di ottimizzazzione viene invocata solo una volta per tutta la durata impostata nell’attributo OutputCache che aggiunge in memoria il markup già ottimizzato, cosa non fattibile con un HttpModule.

[OutputCache(Duration = 10000,VaryByParam = "None")]
[OptimizationFilter(Compress = true,RemoveWhiteSpace = true)]
public ActionResult Index()
{
//.....
}

Ciauz


Comments