Turvenn.no
Webutvikler kurs ASP.NET, C#, CSS mm.

WebRessurs.no - Webprogrammering og ressurs innen ASP, ASP.NET, PHP, SQL, HTML, CSS, Javascript, XML, C#, VB, Flash  mm.

Brukernavn: 
Passord:

Registrèr deg Glemt passord?
Logg deg inn




  ASP.net (199)
  ASP 3.0 (111)
  PHP (30)
  HTML (66)
  SQL (89)
  CSS (46)
  XML (7)
  JavaScript (78)
  Diverse kode (13)


  Programmering (22)
  System og drift (15)
  Trafikk og inntekt (11)
  Guider og tips (22)
  Nyttig lesestoff (23)
  Web forum (604)
  Link galleri (565)


  ASP.NET kurs(5)
  CSS kurs (2)
  JQuery kurs (2)


  Øk trafikken (8)
  Facebook App. (4)
  Microsoft CEO (6)


  Server & web
  Internett & epost
  Systemverktøy
  Sikkerhet
  Fildeling
  Lyd & media
  Diverse software


  Domenesalg
  Metagenerator
  Websikre farger
  WebMail


  Bli medlem!
  Siste innlegg
  Gjestebok
  Tips en venn
  Kontakt oss
  Forsiden




Kode Artikler
Linker


Mål internetthastigheten din.


Caching: Partial Page, OutputCache, OutputCache Substitutions og Cache API

av Øyvind A. Isaksen
 
Denne artikkelen omhandler forskjellige metoder å cache data på i ASP.NET. Ved å benytte caching kan man unngå å hente samme data fra databasen flere ganger, i stedet lagrer man det i minnet på serveren slik at det senere kan hentes derfra. Dette sparer databasen for mange unødvenige oppslag, noe som til slutt gir en bedre ytelse. Vi viser hvordan man ved hjelp av Partial Page Caching, OutputCache og OutputCache Substitutions kan cache hele, eller deler av -en side. Til slutt viser vi et kode-eksempel på hvordan man kan cache innhold hentet fra en XML fil, og hvordan vi kan måle hvor mye ytelsen øker ved å benytte caching!

-------------------------------------------
PARTIAL-PAGE OUTPUT CACHING
-------------------------------------------

Cache feks bare en usercontrol. Ved å sette <%@ OutputCache Duration="60" VaryByParam="*" %> i toppen av UserControllen (Code front) vil denne Cache's i 60 sekunder. Man kan også gjøre dette "Code behind" ved å legge inn Class Level Attribute over klassen kalt "Partial CLass" på denne måten:

[PartialCaching(60)]
public class minKlasse
{
//Innhold
}


-------------------------------------------
OUTPUTCACHE
-------------------------------------------

Brukes når du øsnker å cache en hel side (alt innholdet på en side). Dette gjøres enkel og greit ved å tilføye følgende i toppen av aspx siden:
<%@ OutputCache Duration="60" VaryByParam="*" %>

Siden vil da caches i 60 sekunder.


-------------------------------------------
OUTPUTCACHE SUBSTITUTION (DONUT CAHING)
-------------------------------------------

Om man cache'er en hel side kan man likevel unngå å cache deler av siden ved å benytte en "Substitution Control". Denne kontrollen kaller en metode (MethodName), og det som kjøres i metoden som kalles vil ikke bli cachet. Slik Legger man inn en Substitution kontroll:

<asp:Substitution id="Substitution" runat="Server" MethodName="GetTime" />


-------------------------------------------
CACHE API
-------------------------------------------

Her vises et eksempel på hvordan man kan cache et dataset. Hvis cache er tomt, så leses en XML fil inn i dataset'et og deretter bindes dette til en GridView. Er derimot dataset'et allerede lagt inn i cache vil vi binde det direkte til GridView'en. En melding vises om dataene hentes fra XML'en eller fra Cache. Vi har også lagt på en knapp for å tømme cach'en, samt en stoppeklokke som viser hvor lang tid det tar å vise siden avhengig av om data hentes fra XML eller fra Cache. Faktisk laster siden over 10 ganger fortere når vi leser fra Cache enn når vi leser fra filsystemet!!


CacheAPI.aspx:

<asp:GridView ID="grdNavn" runat="server" /><br />
<asp:Label runat="server" ID="lblInfo" /><br /><br />
<asp:Button ID="btnSlettCache" Text="Flush cache" runat="server" OnClick="btnSlettCache_Click" />


CacheAPI.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Caching;

public partial class CacheAPI : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
System.Diagnostics.Stopwatch klokke = new System.Diagnostics.Stopwatch();

klokke.Start();
getCachedData();
klokke.Stop();

Response.Write("Siden lastet på " + klokke.Elapsed.TotalMilliseconds + " millisekunder!");
klokke.Reset();
}

private void getCachedData()
{
DataSet ds;
ds = (DataSet)Cache["Navn"];

if (ds == null)
{
string path = @"C:\Inetpub\wwwroot\Test.site\Navn.xml";
ds = new DataSet();
ds.ReadXml(path);

CacheDependency CacheDependency = new CacheDependency(path);
Cache.Insert("Navn", ds, CacheDependency);
this.lblInfo.Text = "Navn lest fra XML fil";
}
else
{
this.lblInfo.Text = "Navn lest fra Cache";
}

this.grdNavn.DataSource = ds;
this.grdNavn.DataBind();
}

protected void btnSlettCache_Click(object sender, EventArgs e)
{
Cache.Remove("Navn");
Response.Redirect("CacheAPI.aspx");
}
}


-------------------------------------------
CACHE DATA FRA SQLSERVER
-------------------------------------------

Se artikler om hvordan man kan cache data fra SQL Server her:

http://www.webressurs.no/main/kode/detalj.asp?kodeid=457
http://www.webressurs.no/main/kode/detalj.asp?kodeid=447


WebRessurs.no anbefaler:    StackOverflow.com | Experts-Exchange.com | W3schools | ASP.NET | Codeproject | 4Guys
WebRessurs.no er utviklet og drives av SoftMaker
Sett som startside: [ ]. Bokmerk denne siden: [ klikk ]. Sitemap. http://twitter.com/webressurs_no/. Antall brukersesjoner: 14049835.
Copyright WebRessurs.no © 2003 - 2018
Jobbsøk.no - Jobbsøknad, CV, intervju, tips og lenker