+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 5 su 5

Discussione: ASP.NET: cache delle pagine

  1. #1
    L'avatar di luciano.net
    luciano.net non è in linea Scolaretto
    Luogo
    Roma
    Post
    475

    ASP.NET: cache delle pagine

    Non mi è chiaro come funziona.
    Inserendo
    codice:
    <%@OutputCacheDuration="1"VaryByParam="None"%>
    la mia pagina dovrebbe scadere dopo 1 secondo, quindi alla successiva richiesta viene ricompilata.

    Se però torno indietro con i tasti di explorer vedo le pagine vecchie.
    Nel mio caso, sto modificando un importo, vedo tutti i passaggi effettuati, eppure la pagina è la stessa.

    Inoltre, se torno, sempre con il tasto di explorer, indietro fino alla pagina con l'elenco degli importi, anche questa con
    codice:
    <%@OutputCacheDuration="1"VaryByParam="None"%>
    i prezzi non si aggiornano se non la ricarico (F5).

    Mi sembra di capire che la gestione della cash ha senso solo se richiedo la pagina, non posso fare nulla per il mio problema?

    Eppure la mia banca è diversa...
    nel senso che quando faccio un'operazione se torno indietro non vedo più le pagine utilizzate.

    Qualcuno mi può chiarire le idee?

    Luciano

  2. #2
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Un piccolo preambolo, mettere in cache significa inserire una copia di una pagina in uno spazio di memoria in modo da velocizzare la richiesta della pagina in questione da parte dell'utente.
    Il parametro Duration imposta l'intervallo di tempo per il quale la pagina è inserita in cache, quindi se si impostato a 10 secondi significa che rimane per 10 secondi in memoria ed ad una nuova richiesta al web server verrà nuovamente rimessa in cache.
    Il discorso del back in asp.net meriterebbe un intero articolo, ad ogni modo se quello che vuoi fare è "resettare" la cache quando un utente preme il tasto back del browser allora nell'evento Page_Init:
    codice:
    HttpContext.Current.Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
    HttpContext.Current.Response.Cache.SetValidUntilExpires(false);
    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
    HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
    HttpContext.Current.Response.Cache.SetNoStore();

  3. #3
    L'avatar di luciano.net
    luciano.net non è in linea Scolaretto
    Luogo
    Roma
    Post
    475
    Grazie.
    Appena torno in ufficio provo il tuo codice.

    Luciano

  4. #4
    L'avatar di luciano.net
    luciano.net non è in linea Scolaretto
    Luogo
    Roma
    Post
    475
    Il codice funziona, nel senso che appare una pagina standard che avvisa che la pagina è scaduta. Se non si può fare di meglio mi accontento, però se potessi gestire l'errore sarebbe meglio, ad esempio con un redirect ad una pagina personalizzata.

    Luciano

  5. #5
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Prova a dare uno sguardo ad un'altra mia discussione:
    Problema con l'Expires

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi