Avatar billede segato Nybegynder
20. november 2007 - 13:08 Der er 12 kommentarer og
1 løsning

Page/UserControl Caching og events

Hvis jeg cacher en side eller en UserControl i asp.net, og jeg på denne side har en asp.net knap. Hvordan kan det være man mister event når man cacher siden?

På forhånd tak.
Avatar billede neoman Novice
20. november 2007 - 13:28 #1
Øh - mener du at når du har hentet en control fra cachen, og derpå klikker på knappen, at eventhandleren så ikke bliver kørt ? I så fald nok fordi den igen skal hentes fra cachen  ved den efterfølgende page load.
Avatar billede segato Nybegynder
20. november 2007 - 13:43 #2
Jeg propper ikke en control i cache manuelt, jeg gør det declerativt:

<%@ OutputCache Duration="600" VaryByParam="None" %>

Propper du den her i din apsx fil vil den cache hele siden, men så forsvinder control events efter et postback.
Avatar billede neoman Novice
20. november 2007 - 13:53 #3
"forsvinder kontrol events" - hvad mener du ? Bliver de ikke eksekveret ? Eller er det bare en uændret side som dukker op i browseren, hvilker er noget lidt andet ?

Mit gæt er at du ikke kan lide at du fortæller browseren at den skal vise en side fra cachen, og den så bare gør det uanset hvad. Du kan ændre i visningen : http://msdn2.microsoft.com/en-us/library/xadzbzd6(VS.80).aspx
Avatar billede segato Nybegynder
20. november 2007 - 14:20 #4
Hej neoman,

Hvis du prøver at lave en simpel side med en knap på. I knappens skriver du

Response.Write(Datetime.Now.ToLongTimeDate());

Så klikker du på knap, og hver gang for du en postback, og et fint nyt tispunkt bliver vist på siden. Prøv så at tilføje følgende oppe i toppen:

<%@ OutputCache Duration="600" VaryByParam="None" %>

Så vil du se at du kun første gang fanger et event. Sæt et breakpoint i knap event.

Mvh,

Thomas
Avatar billede neoman Novice
20. november 2007 - 14:30 #5
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="TestOutputCache.aspx.vb" Inherits="TestOutputCache" %>
<%@ OutputCache Duration="600"  VaryByControl="TextBox1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" /></div>
    </form>
</body>
</html>
og
Partial Class TestOutputCache
    Inherits System.Web.UI.Page

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = (DateTime.Now.ToLongTimeString())
    End Sub
End Class

virker hos mig, altså handleren køres hver gang
Avatar billede neoman Novice
20. november 2007 - 14:35 #6
Og du har ret i at eventen ikke kører med VaryByParams="None" - det har jeg ikke umiddelbart noget svar på
Avatar billede segato Nybegynder
20. november 2007 - 14:43 #7
Ok, det betyder bare den cacher hele siden. men tak for hjælpen, prøver lige at lade tråden køre lidt videre, vender tilbage med points senere.
Avatar billede neoman Novice
20. november 2007 - 14:43 #8
Men den kører med VaryByParams="*"... det er noget jeg bliver nødt til at gruble over:)
Avatar billede neoman Novice
20. november 2007 - 14:46 #9
Ja - måske har nogen en forklaring, for det er lidt mystisk.
Avatar billede neoman Novice
20. november 2007 - 14:52 #10
Svaret er her:
"# With output caching enabled for a Web Form,  the page will be served directly from the Windows Server 2003 kernel if VaryByParam=“None“ and no other Vary settings are specified.  The framework will not be called in any way - Application_BeginRequest will not fire.  "

taget fra : http://geekswithblogs.net/ewright/Default.aspx
Avatar billede segato Nybegynder
20. november 2007 - 16:14 #11
Hej neoman,

Tak for hjælpen det lige i øjet. Smid et svar.
Avatar billede neoman Novice
20. november 2007 - 16:18 #12
:P
Avatar billede neoman Novice
20. november 2007 - 16:18 #13
og igen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester