Мне нужно получить время, которое каждый пользователь провел на странице, и вставить эту информацию в базу данных.
Когда страница загружается, я назначаю время начала значению javascript. по функции onunload тела я вычисляю разницу во времени между временем начала и окончания, чтобы я мог вставить его в базу данных.
Я использую диспетчер сценариев, и EnablePageMethods имеет значение true. А в функции javascript, которую я вызываю onunload, я вызываю веб-метод с использованием методов страницы.
Кажется, в Firefox работает нормально. Однако в Chrome и IE это не работает.
Есть ли у кого-нибудь из вас идеи, потому что я действительно их теряю. Заранее спасибо.
Код диспетчера сценариев:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
Код js выглядит примерно так:
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 # выглядит примерно так:
[System.Web.Services.WebMethod]
public static void ClosePage(int milliseconds)
{
try{
// Insert millisecond to database...
}
catch
{ }
}