Sto eseguendo un sito Web con ASP.NET 4.0.
La parte CMS del sito Web è costituita da semplici pagine “.HTML”, non “.aspx”.
Domanda: a parte l’uso di awStats, c’è un modo semplice per contare quante volte ogni pagina è stata “servita”?
Crea un gestore ashx
che restituisca un’immagine pixel 1×1 vuota e chiamala dalla parte inferiore di tali pagine come immagine con alcuni parametri come il nome della pagina o l’id di questa pagina.
All’interno di questo gestore si salvano le statistiche della chiamata di pagina.
Il modo in cui lo chiami è come un’immagine, ad es

e posizionarlo da qualche parte che non influisce sul rendering della pagina, e quando il browser esegue il rendering della pagina carica anche questa immagine / gestore e si salvano le statistiche. Lascio l’altezza e la larghezza a 1×1 per evitare che il browser non la carichi.
Per renderlo ancora più bello, ecco il codice per il gestore.
// 1x1 transparent GIF private readonly byte[] GifData = { 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x01, 0x00, 0x01, 0x00, 0x80, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x44, 0x01, 0x00, 0x3b }; public void ProcessRequest (HttpContext context) { // save here your stat // send the image context.Response.ContentType = "image/gif"; context.Response.Buffer = false; context.Response.OutputStream.Write(GifData, 0, GifData.Length); }
Presta solo attenzione alla cache, imposta la cache su none per questa immagine.