我正在编写HttpModule
以根据用户当前会话跟踪用户的网页浏览量。
除了用户放弃会话时,我的模块工作正常。示例场景:
我想要挂钩Session End
事件,以便我可以为用户批量更新页面视图,而不是每次点击页面时都这样做(性能不是很好)。
有没有办法检测何时发生这种情况,然后触发事件/代码片段来记录视图?
需要示例代码:
public void Init(HttpApplication application)
{
application.PostRequestHandlerExecute += application_PostRequestHandlerExecute;
SessionStateModule session = (SessionStateModule)application.Modules["Session"];
session.Start += session_Start;
session.End += session_End;
}
void session_End(object sender, EventArgs e)
{
Visitor visitor = HttpContext.Current.Session["visitor"] as Visitor;
if (visitor != null)
{
foreach (PageItem page in visitor.Pages)
{
page.UpdatePageViews();
}
}
}
答案 0 :(得分:0)
我知道这可能与目前的解决方案不一致,但也许您可以查看另一种跟踪使用情况的解决方案,例如Google Analytics--因为他们已经在他们的平台上投入了大量精力。
您还可以将解决方案与Google Analytics集成,以根据需要将摘要信息反馈给您。这意味着您也不需要在本地存储所有跟踪信息,而只需根据需要通过其API发出请求。
我发现API难以集成,但现在让它在解决方案中工作。
如果你必须在本地进行跟踪,为什么不异步这样做,这样你就不会占用UI线程 - 那样性能影响应该是最小的?