¿Cómo puedo registrar acciones (clics, etc.) que los usuarios realizan en una aplicación web AJAX?

Una buena manera de hacer esto es la siguiente. En los elementos que desencadenan “acciones” que le gustaría registrar, agregue un controlador de mouse hacia abajo (o lo que más le convenga) que invocará una función que envía una XHR (solicitud HTTP HTTP) a su servidor. Los datos enviados en el XHR deben incluir:

  1. Un medio para identificar la página o acción.
  2. Una identificación de usuario de algún tipo.

Luego puede conservar esta información en un almacén de datos.

Aquí hay un ejemplo:

HTML

   Inicio 

JavaScript

function logClick(pageId) { var userId = 1; // you'll want to put the actual user's ID here var xmlhttp = new XMLHttpRequest(); // send GET request to logging URL xmlhttp.open("GET","/log-request?pid=" + pageId + "&uid=" + userId, true); xmlhttp.send(null); } 

y luego tendría un script del lado del servidor que se ejecuta en /log-request para tomar los parámetros pid y uid GET URL y almacenarlos en una base de datos (o en cualquier lugar que elija). Obviamente, en el mundo real querrás hacer esto de manera mucho más segura, pero más o menos la forma de hacerlo.

Muchos sitios usan este método, incluido Bing:

Google

Hasta donde yo sé, si_T es una función de registro que envía una solicitud al servidor junto con el ID "&ID=SERP,5068.1 “. Ahora, puede notar que Bing no envía un XHR cuando hace clic en un resultado de búsqueda. Esto se debe a que, de hecho, crea un nuevo elemento de imagen, establece el origen en la URL de registro, lo hace invisible y luego agrega la imagen a la página; esto tiene el efecto de “hacer ping” a la URL.