Caching
is a technique of storing frequently used data/information in memory, so that,
when the same data/information is needed next time, it could be directly
retrieved from the memory instead of being generated by the application.
Caching is extremely important for performance
boosting in ASP.Net, as the pages and controls are dynamically generated here.
It is especially important for data related transactions, as these are
expensive in terms of response time.
You can access items in the cache using an indexer and
may control the lifetime of objects in the cache and set up links between the
cached objects and their physical sources.
In short:-Caching is a feature that stores
data in local memory, allowing incoming requests to be served from memory
directly.
Benefits of Caching
The following are the benefits of using
Caching
•
Faster page rendering
•
Minimization of database hits
•
Minimization of the consumption of server resources
Types of Caching:-
Caching in ASP.NET can be of the following
types
•
Page Output Caching
•
Page Fragment Caching
•
Data Caching
Page Output Caching:
Output
cache stores a copy of the finally rendered HTML pages or part of pages sent to
the client. When the next client requests for this page, instead of
regenerating the page, a cached copy of the page is sent, thus saving time.
Syntax of output caching
At design time:-
<%@ OutputCache Duration="no of
seconds" Location="Any | Client | Server | None"
VaryByParam="parameter" %>
Programmetically:-
Response.Cache.SetCacheability(HttpCacheability.Server);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(30));
Response.Cache.SetValidUntilExpires(true);
Response.Cache.VaryByParams["EmployeeID"]=
true;
Page Fragment Caching:
This type of caching is used with user
controls in asp.net.
Syntax of fragment
caching
<%@ OutputCache
Duration="15" VaryByParam="*" %>
This directive is placed at the top of any
User Control (.ascx file).
Data Caching
Data caching means
caching data from a data source. As long as the cache is not expired, a request
for the data will be fulfilled from the cache. When the cache is expired, fresh
data is obtained by the data source and the cache is refilled.
Example:-1
x=new OleDbConnection("provider=microsoft.jet.oledb.4.0;data
source=c:\\db1.mdb");
x.Open();
y = new OleDbDataAdapter("select *
from emp", x)
ds = new DataSet();
y.Fill(ds, "emp");
Cache.Insert("abc", ds);
ds =(DataSet)
Cache["abc"];
GridView1.DataSource =
ds.Tables["emp"];
GridView1.DataBind();
Example-2
OleDbConnection x;
OleDbDataAdapter y;
DataSet z;
protected void
Button1_Click(object sender, EventArgs e)
{
DataSet z = new DataSet();
Cache.Remove("abc");
z=(DataSet)Cache["abc"];
if(z != null)
{
GridView1.DataSource =z.Tables["emp"];
GridView1.DataBind();
}
else
{
//z.Dispose();
x = new OleDbConnection("provider=msdaora;user id=scott;password=tiger");
x.Open();
y = new OleDbDataAdapter("select * from emp", x);
z = new DataSet();
y.Fill(z, "emp");
Cache.Insert("abc", z);
GridView1.DataSource = Cache["abc"];
GridView1.DataBind();
x.Close();
}
}
Cache Expirations
Time Based Expiration
This is used to specify a specific period
of time for which the page would remain in the cache. The following statement
specifies
such expiration for a page in the code
behind of a file using C#.
Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));
Cache.Insert("userInfo", ds,
null, DateTime.Now.AddMinutes(2),
NoSlidingExpiration,
CacheItemPriority.High,
CacheItemPriorityDecay.Slow, onRemove);
The Cache Class
The Add/Insert method of the Cache class
is used to add/insert an item into the cache. The Remove method removes a
specified item from the cache. The Cache class contains the following
properties and methods.
Properties
•
Count
•
Item
Methods
•
Add
•
Equals
•
Get
•
GetEnumerator
•
GetHashCode
•
GetType
•
Insert
•
Remove (Overloaded)
•
ToString
-------------------------------------------------------------------------------------
Thank
you guys... keep visiting ….:)
If
you like this post then please join this site and like it’s Facebook page
for getting updates and contributing into the problem solving of members of this blog.you can also post your issues on this blog's Facebook page and can get the solutions.
No comments:
Post a Comment