MBCompression je knjižnica ročic in modulov, ki omogočajo kompresiranje stilskih datotek, Javascript dokumentov, strani in celo ročice WebResource.axd. Je enostavna za uporabo in omogoča izboljšanje hitrosti delovanja vaših spletnih rešitev.
Prednosti:
- enostavna implementacija v obstoječih projektih
- vsaka lastnost je nastavljiva v konfiguracijski datoteki web.config
- vsaka zunanja datoteka (js, css) in ročica WebResource.axd je shranjena v pomnilniku na odjemalcu in strežniku
- čas pomnenja se da nadzirati v konfiguracijski datoteki
- določena vsebina ali spletna stran se da izključiti iz kompresije
- podpira ogrodje .NET 2.0, 3.0, 3.5
- podpira tudi kompresijo “3rd party” kontrol (npr. Telerik)
- System.Web.Handlers.AssemblyResourceLoader je bil spisan na novo za boljšo odzivnost. Prednost tega je, da se datoteka (css, js) ne prenese na odjemalca z vsakim zahtevkom na strežnik
Kako deluje?
Dodamo MbCompression.dll v imenik Bin v našem spletnem projektu. Glede na potrebe (css, js) registriramo ročico v konfiguracijski datoteki web.config.
Primer ročice za kompresiranje javascript (prvo web.config, potem izvorna koda ter primer “inline” kode):
<add verb="*" path="jslib.axd" type="Miron.Web.HandlersAndModules.JavaScriptCompressionHandler" validate="false"/>
protected virtual void AddJavaScriptInclude(string path)
{
HtmlGenericControl script = new HtmlGenericControl("script");
script.Attributes["type"] = "text/javascript";
// Change the 'src' to jslib.axd file, but keep the releative directory (for relative urls in the js file)
script.Attributes["src"] = ResolveUrl(path).Replace(System.IO.Path.GetFileName(path), "jslib.axd?d=" + Server.UrlEncode(path));
Page.Header.Controls.Add(script);
}
ali pa direktno v aspx dokument
<script type="text/javascript" src="Scripts/jslib.axd?d=~/Scripts/utils.js">
Povezava do knjižnice in opisa: http://www.codeplex.com/MbCompression
Povezava do primera uporabe: http://mironabramson.com/blog/page/HandlersAndModules--Implementation.aspx