每个用户只能触发一次jQuery事件

时间:2012-08-23 11:30:19

标签: php jquery cookies

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

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

欢迎所有建议。

谢谢

3 个答案:

答案 0 :(得分:2)

我能想到3种可能性:

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

Javascript Cookie:
只需将信息存储在JS cookie中即可。如果你想坚持使用jQuery,可以使用nice plugin for this kind of purpose

浏览器商店:
这可以是sessionStore or localStore,您可以在其中轻松保存识别已触发事件所需的信息。

就个人而言,如果您知道访问者的浏览器,我会选择2或者3,因为不是每个浏览器都能够做到这一点(尽管我怀疑是否还有人想要支持IE6 / 7)

答案 1 :(得分:1)

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

1.检查cookie visited_already是否存在。

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

3.Else,首次访问:做一些事情并创建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.
}

答案 2 :(得分:0)

感谢您的贡献。

我找到了另一种完美的解决方案。 这个链接帮了我很多: How to set cookies in Javascript

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

速度快,工作正常,正是我需要的。