La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Cómo cuenta ASP.NET la tasa de clics de ayer, la tasa de clics de hoy y la tasa de clics histórica total?

¿Cómo cuenta ASP.NET la tasa de clics de ayer, la tasa de clics de hoy y la tasa de clics histórica total?

Tasa de clics estadística: incluye estadísticas de la tasa de clics total del sitio web, la tasa de clics total del día y la tasa de clics de cada página.

Los registros detallados de los sitios web ASP.NET generalmente los proporciona IIS. El directorio de los registros se puede configurar en el Administrador de servicios de información de IIS. Sin embargo, estos archivos de registro existen en forma de archivos txt. Si desea utilizarlos en ASP.NET, debe escribir un código especial de análisis y estadísticas. Sin embargo, esto aumentará la complejidad y la eficiencia no cumplirá con los requisitos, porque lleva mucho tiempo analizar archivos planos. A veces no necesitamos su información detallada, solo necesitamos contar el número total de clics por día o el número de clics por página. Si cada página requiere una larga espera, esto es obviamente inaceptable.

Entonces consideramos escribir el código para contar los clics totales del día en masterPage y luego escribirlo en la base de datos, de modo que se puedan contar los clics de cada página web y escribir estadísticas para la tasa de clics; de una sola página en cada código de página web y luego escribirlo en la base de datos. Por supuesto, esto es posible, pero afectará el rendimiento, porque cada vez que hace clic en una página web, debe leer la tasa de clics actual de la base de datos, agregar 1 y volver a escribirla. Si existe concurrencia, la base de datos bloquea los datos y bloquea el siguiente acceso hasta que finalice el comando anterior. Esto es para evitar el polvo. Si hay mucha concurrencia, puede afectar el rendimiento.

Entonces, la nueva idea es que el código estadístico en la página maestra y en las páginas web individuales no lee la base de datos por adelantado, sino que escribe la información en httpapplicationstate, es decir, para cada clic, el valor en httpapplicationstate aumenta en 1. Debido a que HttpAppplicationState se almacena en la memoria, manipularlo es mucho más rápido que manipular la base de datos directamente. Luego inicie el temporizador del grupo de subprocesos (System. Threading.Timer) y colóquelo en la función Application_Start en Global.asax, y deje que la función de procesamiento del temporizador verifique los datos en HttpAppplicationState cada 5 segundos. Si hay datos, primero lea los datos en la base de datos y agréguelos en httpapplicationstate, luego vuelva a escribirlos en la base de datos y borre httpapplicationstate después de escribir los datos en la base de datos. La ventaja de esto es que el controlador procesa los datos en un nuevo hilo y no consume tiempo de ASP. NET; eliminar el acceso simultáneo.

Tenga en cuenta que se debe agregar un controlador a Application_End de Global.asax para garantizar que una vez cerrada la aplicación y aún no haya transcurrido el intervalo de tiempo, los datos en HttpApplicationState se puedan escribir correctamente en la base de datos sin perderse. estadísticas de tasa de clics.

En vista de la tasa de clics total del día y la tasa de clics total de cada página, la función que opera HttpApplicationState se puede reconstruir y fusionar en una función y colocar en una clase auxiliar. El código de la función es el siguiente:

public void AddValueToApplication(aplicación de estado de la aplicación http, nombre del diccionario de cadena, nombre del elemento de cadena)

{

if (cadena. IsNullOrEmpty( itemName) )Return;

Aplicar. lock();

Diccionario & ltstring, int & gtlist = nuevo diccionario & ltstring, int & gt();

if (aplicación[nombredeldiccionario]!=null)

{

list = (diccionario & ltstring, int & gt) aplicación [nombre del diccionario]

if (list. ContieneKey (nombre del proyecto))

;

lista[itemName]++;

Otras

listas.

Agregar(itemName, 1);

}

Otros

{

Lista. Agregar(nombre del elemento, 1);

}

aplicación[nombre del diccionario]= lista;

Aplicación. UnLock();

}

La función anterior guarda la tasa de clics a través del Diccionario. El parámetro nombre del diccionario representa el nombre del proyecto que se va a contar, como "clics totales". tasa de clics para el día" y "tasa de clics de una sola página"; el parámetro itemName representa el nombre específico del elemento que se va a contar. Para la tasa de clics del día, el valor posible de itemname es "2010-10-19". Para la tasa de clics de una sola página, el valor posible de itemName es "xxx.aspx". Estas páginas normalmente se generan dinámicamente mediante enrutamiento ASP.NET.

En masterPage y en cada página, solo necesita llamar a esta función para implementar la operación HttpapplicationState.

2. Cuente el número de usuarios en línea: incluidos los usuarios conectados en línea y los usuarios anónimos.

Juzga el número de personas en línea contando el número de ID de sesión. Algunos de estos usuarios son usuarios registrados y otros son usuarios anónimos. Determine los usuarios registrados y los usuarios anónimos a través de Page.User.IsAuthenticate.

Contar personas en línea es más complicado que contar las tasas de clics, pero sus métodos de conteo son los mismos, es decir, primero escriba los datos en HttpapplicationState, luego registre el controlador del temporizador en Global.asax y luego agréguelo. a HttpApplicationState. Los datos se escriben en la base de datos en el controlador del temporizador.