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

时间:2013-01-09 21:51:08

标签: javascript jquery html

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

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

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

4 个答案:

答案 0 :(得分:5)

使用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;
}

来自quirksmode.org的Cookie函数。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您可以使用客户端持久存储来标记用户已经看过这个。以下是3个选项:

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

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

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

答案 3 :(得分:0)

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