Skip to main content

70-562 Page Fragments


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

Popular posts from this blog

Rxjs Forkjoin vs Zip

These Rxjs combination operators are handy to make Rest calls in parallel and combine their results. Both take n observables and will return the results, with the difference that forkJoin will complete even if one of the nested observables errors of completes.

React JS Patterns

React JS is always evolving, and evolving quickly. These evolutions can be very significant ones, for example, the addition of hooks. React has a lot of code patterns, often these patterns are motivated by the DRY and/or the open-close principle. These patterns sometimes come in to replace a previous one, yet the previous ones still stays in use, as a consequence, the list of patterns keep growing. The goal of the next few posts will be to list the patterns commonly used in React JS developpement. Some patterns are more specific to JSX and I will start with these, and maybe add patterns specific to Redux.

Object.create vs. Object.Assign

The two functions return a new Object but with a difference. Object.assign will go through an enumerable and copy it's properties. Object.create will create a new empty object but link it's proto chain to the old object. One way to view this is with JSON.stringify(newCreatedObject) this would return an empty object, since all the properties are not part of the object's own properties, but inherited through prototype inheritance. In both case, the advantage is it allows to extended existing objects without modifying the original. This is particularly important when receiving arguments from a caller, in this case it's better to use these methods instead of modifying the caller's object since he might have planned to use it again later, expecting it to be in it's original state.