每个用户只触发一次jquery事件


Fire jquery event only once for each user

我有一个弹出窗口,加载后会出现在主页上,我需要确保每个新访问者只出现一次。

最好的方法是什么?我非常熟悉jQuery和PHP,但老实说,我已经有一段时间没有使用任何类型的cookie了。

欢迎所有建议。

感谢

我可以想到三种可能性:

PHP会话:
当事件触发时,向服务器发出AJAX调用。将用户的session_id存储在某个地方,例如数据库中(一个简单的带有sessionid的1列表就足够了)。如果您检查数据库并在那里找到sessionid,那么您就知道用户已经触发了该事件。

Javascript Cookies:
只需将信息存储在JS cookie中即可。如果你想坚持使用jQuery,有一个很好的插件可以用于这种目的。

浏览器存储:
这可以是sessionStore或localStore,您可以在其中轻松保存识别激发事件所需的信息。

就我个人而言,如果你知道访客的浏览器,我会选择2甚至3,因为不是每个浏览器都能做到这一点(尽管我怀疑是否有人仍然想支持IE6/7)

在这种情况下,您可以使用会话或cookie。

1.检查cookie visited_already是否存在。

2.如果存在,他已经访问了我们的网站,什么都不做。

3.否则,第一次访问:做点什么并创建visited_already cookie。

例如:

if(!isset($_COOKIE['visited_already']))
{
setcookie('visited_already' , 'true' , time()+60*60*24*7*365); //Will expire in a year (or when the user delete cookies)
//pop-up code here.
}

感谢各位的贡献。

我找到了另一个完美的解决方案。这个链接对我帮助很大:如何在Javascript 中设置cookie

jQuery(window).load(function() {
            var cookie_mesage = jQuery.cookie('welcome');
            if (cookie_mesage != 'hide') {
                jQuery('.ceebox').trigger('click');
                jQuery.cookie('welcome', 'hide');
            };
        });

它速度快,效果好,正是我所需要的。