Je dois obtenir le temps que chaque utilisateur a passé sur la page et insérer cette information dans la base de données. Lorsque la page est chargée, j'attribue une heure de début à une valeur JavaScript. Sur la fonction onunload du corps, je calcule la différence de temps entre l'heure de début et l'heure de fin pour que je puisse l'insérer dans la base de données. J'utilise le gestionnaire de script et EnablePageMethods est défini sur true. Et dans la fonction javascript que j'appelle onunload, j'appelle une méthode web en utilisant pagemethods.Obtenir le temps passé par l'utilisateur onunload dans Asp.Net et javascript
Cela semble fonctionner correctement dans Firefox. Cependant, dans Chrome et IE, cela ne fonctionne pas.
Est-ce que quelqu'un d'entre vous a une idée, parce que je la perds vraiment. Merci d'avance.
Le code Script Manager est:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
Le code js est quelque chose comme ça:
function ExitPage() {
try {
var leavingTime = new Date();
alert("entering: " + enteringTime);
alert("exiting: " + leavingTime);
var diff = leavingTime - enteringTime;
alert("diff: " + diff);
alert(window.location);
}
catch (Err) {
alert("Before error:" + Err.Description);
}
try {
alert("Before PageMethods Call");
PageMethods.set_path('SomePage.aspx');
PageMethods.ClosePage(diff,onSuccess,onFail);
}
catch (Err) {
alert("Error In PageMethods Block:" + Err.Description);
}
alert("Before Return");
return false;
}
function onSuccess() {
alert("Success");
}
function onFail() {
alert("Fail");
}
C# Code est quelque chose comme ça:
[System.Web.Services.WebMethod]
public static void ClosePage(int milliseconds)
{
try{
// Insert millisecond to database...
}
catch
{ }
}
Pouvez-vous montrer comment ExitPage est appelé? – Kenoyer130
sure: –
Vous le savez probablement déjà, mais je vais le dire quand même - les données seront très inexactes. Vous n'obtenez aucune donnée sur les personnes dont le navigateur se bloque; vous obtenez de longs moments de la part de personnes qui laissent simplement un onglet ouvert en arrière-plan; et vous obtenez des comptes de visiteurs erronés de personnes qui redémarrent fréquemment leur navigateur avec cet onglet de rechargement à chaque fois. – Timwi