1

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

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

欢迎所有建议。

谢谢

4

3 回答 3

2

我可以想到3种可能性:

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

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

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

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

于 2012-08-23T11:52:00.230 回答
1

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

1.检查cookie是否visited_already存在。

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

3.Else,第一次访问:做某事并创建visited_alreadycookie。

例如:

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.
}
于 2012-08-23T11:51:03.400 回答
0

感谢你们的贡献。

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

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

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

于 2012-08-23T12:30:47.193 回答