保存持续时间的信息用户打开了一个站点

时间:2011-03-27 16:28:50

标签: asp.net

我如何设置它:

我想保存用户在网站中点击的链接。我想创建一个jquery函数,它会在每次单击链接时保存链接名称,然后在用户关闭站点后将信息写入数据库。

这听起来像是一种正确的方式。有人有样品吗?

由于有多个页面包含多个链接,我想在javascript中创建一个与Session变量等效的内容,这样每次用户点击一个链接时我都可以向它添加信息,并且只将一次信息发送到数据库,而不是每次都发送一次用户单击链接打开数据库连接并发送信息。

链接是产品,所以我想保存相关产品,所以我想保存相关的产品信息。也许我需要一个cookie呢?

3 个答案:

答案 0 :(得分:1)

等到用户离开网站在理论上是好的,但从未在实践中。因为您无法确切知道用​​户何时离开 - 或者可能是迟到(例如用户关闭计算机)。您真正想要做的是跟踪用户发生的操作使用ajax。

要执行此操作,您需要为每个用户会话分配唯一​​的ID。 ASP.NET为您执行此操作(为站点的每个访问者创建了一个会话cookie。)使用ASP.NET会话标识符将为您节省大量工作。

每次用户执行您要保存的操作时,只需让jQuery对登录到您的数据库的服务进行ajax调用(您不关心返回)。

以下是有关自动SessionID MS Doc

的Microsoft文档

或者只需使用以下代码获取唯一ID:

string sessID =  System.Web.SessionState.SessionID;

答案 1 :(得分:0)

更简单的方法就是给用户提供唯一的cookie。在服务器上,您始终知道用户进入的页面。($_SERVER中的php)因此您的服务器端脚本可以将其保存在数据库中(SID)。

答案 2 :(得分:0)

对旧版浏览器使用localStorage for HTML5浏览器或cookie。

$("a").click(function() {
    car links = localStorage["links"];
    links = JSON.parse(links);
    links.push(this.href);
    localStorage["links"] = JSON.stringify(links);
});

然后听取onbeforeunload事件并对浏览器进行ajax调用,向其发送localStorage [“links”] JSON。