With the proliferation of browsers, and the variety of ways that they interpret directives, a number of strategies have to be employed.
Caching can occur in any of the following locations:
- Any – cache anywhere including client, server and proxy server.
- Client – cache in client browser.
- Downstream – any cacheable devices but not the original server that participates in the request.
- Server – cache on the web server
- None – no cache
Public Shared Sub NoCachePage(ByVal currentPage As System.Web.UI.Page)
' This will turn off the cache  for the above locations
    currentPage.Response.Cache.SetCacheability (Web.HttpCacheability.NoCache)
  currentPage.Response.Cache.SetNoStore()
  currentPage.Response.Cache.SetExpires (DateTime.Now().AddDays(-366))
  currentPage.Response.Cache.SetMaxAge (New  TimeSpan(0))
  currentPage.Response.Cache.AppendCacheExtension ("must-revalidate,  proxy-revalidate")
' This  is to explicitly add to header to avoid being cached in the client browser, without  the above code the page might still be cached on the server but  just not in the client. For example cache is set to  Server and the following codes are also added 
                    Dim Expires As     New  Web.UI.HtmlControls.HtmlMeta()
  Expires.Name = "Expires"
  Expires.Content = "0"
  currentPage.Header.Controls.Add(Expires)
                Dim CacheControl As      New  Web.UI.HtmlControls.HtmlMeta()
  CacheControl.Name = "Cache-Control"
  CacheControl.Content = "no-cache"
  currentPage.Header.Controls.Add(CacheControl)
  Pragma.Name = "Pragma"
  Pragma.Content = "no-cache"
  currentPage.Header.Controls.Add(Pragma)
        End Sub
 
 
 

No comments:
Post a Comment