我有一个弹出窗口在加载后出现在主页上,我需要确保每个新访问者只发生一次。
做这个的最好方式是什么?我对 jQuery 和 PHP 非常熟悉,但老实说,我已经有一段时间没有使用任何类型的 cookie 了。
欢迎所有建议。
谢谢
我可以想到3种可能性:
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.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.
}
感谢你们的贡献。
我找到了另一种完美的解决方案。这个链接对我帮助很大: 如何在 Javascript 中设置 cookie
jQuery(window).load(function() {
var cookie_mesage = jQuery.cookie('welcome');
if (cookie_mesage != 'hide') {
jQuery('.ceebox').trigger('click');
jQuery.cookie('welcome', 'hide');
};
});
它速度快而且效果很好,正是我所需要的。