首次加载时只加载一次广告(div)

我想知道如何只有在第一次加载页面时才加载或显示广告的div,但每次刷新页面时都要隐藏它?

我只有用Jquery加载div的代码,但在刷新页面后不知道如何隐藏它:

$(document).ready(function() { $(".referralProgram").fadeIn("slow"); }); 

使用cookie:

 $(document).ready(function() { if (!readCookie("adSeen")) { $(".referralProgram").fadeIn("slow"); createCookie("adSeen", "1", 1000); } }); function createCookie(name, value, days) { if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = "; expires=" + date.toGMTString(); } else var expires = ""; document.cookie = name + "=" + value + expires + "; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; } 

Cookie函数来自quirksmode.org 。

编辑:由于许多人正在讨论如果禁用cookie,如何处理这个问题,应该指出服务器会话实现依赖于cookie或URL中的会话标识符。 充其量只要会话标识符位于url中,您就只能阻止为同一用户显示广告。 返回主页sans会话ID将重新显示广告。 此外,如果用户共享url,粗心的实现(甚至一些谨慎的实现)可能会导致其他用户误报。 localStorage解决方案不适用于大多数(如果不是全部)浏览器禁用的cookie。

您需要一种方法来跟踪广告何时向用户显示。 在广告创建时设置Cookie并在再次显示之前检查它?

您可以使用客户端持久存储来标记用户已经看到过这一点。 这里有3个选项:

1)Cookies – 在访问用户计算机上设置cookie。

2)HTML5存储 – 您可以将标志存储在浏览器(仅限HTML5)存储中。

3)服务器会话 – 如果您正在使用中间件(PHP,ASP.NET,Java等),您可以通过会话变量进行跟踪(这是一个cookie的抽象,并且只是像您创建它一样持久)。

我不确定您的服务器端实现是什么样的,但如果您担心cookie被关闭,您可以使用会话状态在服务器端处理此问题。