【发布时间】:2011-09-06 05:11:37
【问题描述】:
我有一个网站,我必须(使用 PHP 和/或 JavaScript)实现一条警报消息,该消息会在访问者进入该网站两分钟后触发。我已经搜索过,但我找到的所有解决方案都是针对一个独特的页面。当用户进入我的网站时,无论通过哪个页面,我都需要启动计时器计数器。当用户浏览我的网站页面时,我需要该计数器不断计数。
一种解决方案可能是使用会话变量。我可以制作一个查找此变量的脚本,如果它不存在则意味着用户正在进入该站点。然后我用当前时间设置这个变量。它在每个页面中的脚本,它会每 x 秒通过 AJAX 读取这个变量,我会知道用户从两分钟后何时进入我的网站。
我不知道它是否正确(我还没有实现),但我不太确定 session 是否是最好的方法。如果用户离开页面但打开了其他导航窗口,则会话不会过期,如果他再次进入该站点,则不会重置计数器。
那么,两个问题:
- 有没有更好的方法 更多控制真实进入 并退出?
- 如果不是,是我上面的 接近正确吗?
谢谢。
【问题讨论】:
-
您的想法很好,但我建议在 javascript 中使用 cookie 实现相同的想法。 1)在第一次加载时检查您的cookie是否已经存在,如果不存在,请将其设置为当前时间(注意服务器和客户端时间可能不同,因此使用一个时钟计时)。 2)
setTimeout(...)第一次2分钟(2分钟减去cookie时间和页面重新加载时的当前时间之间的差异)。 -
但是如果我创建了一个cookie,当用户离开我的站点然后重新进入时,cookie 将保留,我将无法知道它是否进入。我错了吗?
-
您可以设置逻辑,如果 document.referrer 不是重置 cookie 的站点。最简单的方法是检查它是否包含您的域。
-
您可以信任 cookie 的过期时间(浏览器会为您执行此操作,因此无需关心)。默认情况下,cookie 在浏览器关闭时过期,我想这就是你想要的。或者,您可以手动将过期时间设置为任何所需的值(30 分钟?1 小时?1 天?)
-
如果用户打开了其他浏览器窗口或选项卡,当他关闭我的网站时cookie会过期?如果不是,那和使用会话是一样的,不是吗?
标签: php javascript jquery session