ASP.Net can cache page fragments, caching page requests to content that doesn't change can increase speed and reduce flashing during postbacks.
By caching these sections, you can improve the troughput of the site.
The way to cache sections of the page is to create user controls that contain the page fragments, the user controls can contain the same caching directives and caching code that are available for any Asp.Net page.
Since the user control is always the same, the VaryByParam is set to none for the OutputCache directive of the aspx page.
If the user control needs to VaryByParam, it can be set to VaryByParam="nameOfTheUserControl$nameOfTheServerControl".
Since the control can be used on different page, the name of the control changes, which is why VaryByControl can be used in user controls to replace VaryByParam, use the name of the server control without the name of the usercontrol.
If mutliple instances of the same user control are used in a page, the caching will be made for each of them as long as their ID is different.
Sometime it's the almost the whole page that needs to be cached, especialy difficult to implement if the dynamic content is in the middle of static content.
Post-cache substitution allows inject dynmic content within static cached content, for example an add rotator.
This is done with Response.WriteSubstitution, or set Method name of a substitution control.
The write susbtitution takes a callback handler that will be executed while the cached copy is retrieved, this callback method can inject fresh html in the page.
The subtitution control is call Substitution, and it's MethodName attribute is set to the callback method that you define and will do the work from code behind.
The Web.config allows to configure caching behavior. Also Output cache profiles can be configured in the web.config, this speeds up adjusting cache as they consist of a bundle of cache settings. Then the page is set to use that profile; one change affects many.
In the OutputCache directive, the CacheProfile="profileName" attribute is added. Note that that the OutputCache directive is in Pascal case and the corresponding settings in the web.config are in camel case.
Comments
Post a Comment