Javascript 在第一次加载时只加载一次广告(div)

Javascript 在第一次加载时只加载一次广告(div),javascript,jquery,html,Javascript,Jquery,Html,我想知道我怎么能有一个div,它有一个要加载的广告,或者只有在您第一次加载页面时才可见,但每次刷新页面时都隐藏它 我只有用Jquery加载div的代码,但不知道刷新页面后如何隐藏它: $(document).ready(function() { $(".referralProgram").fadeIn("slow"); }); 您需要一种方法来跟踪广告何时显示给用户。创建广告时设置cookie,并在再次显示之前检查cookie?使用cookie: $(document).ready(fun

我想知道我怎么能有一个div,它有一个要加载的广告,或者只有在您第一次加载页面时才可见,但每次刷新页面时都隐藏它

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

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

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

使用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;
}
$(文档).ready(函数(){
如果(!readCookie(“adSeen”)){
美元(“.referralProgram”).fadeIn(“慢”);
createCookie(“adSeen”,“1”,1000);
}
});
函数createCookie(名称、值、天数){
如果(天){
变量日期=新日期();
date.setTime(date.getTime()+(天*24*60*60*1000));
var expires=“;expires=“+date.togmString();
}else var expires=“”;
document.cookie=name+“=”+value+expires+“path=/”;
}
函数readCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
Cookie函数来自


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

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

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

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


3) 服务器会话-如果您使用的是中间件(PHP、ASP.NET、Java等),则可以通过会话变量进行跟踪(这是cookie的抽象,仅在创建时持久)。

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

所以只向每个用户显示一次?因此,如果用户在20天后访问,则不向他们显示广告?也许另一种选择是始终向未登录的用户显示广告。登录用户可以第一次看到它,但以后不会再看到。这将解决cookie问题,因为您将在服务器端而不是客户端存储ad状态。此外,它还提供了其他好处,如任何设备的状态持久性。这种类型的实现唯一糟糕的地方是,如果用户禁用了cookie,那么每次都会出现弹出窗口。但不确定有没有更好的办法。大多数网站需要cookie来做任何有意义的事情。#3不是Safari的好解决方案。禁用的第三方cookie。如果作者的页面嵌入到UIWebView中,客户端将不会保存任何状态,并且广告将始终显示。如果禁用第三方Cookie,我不相信提供的任何答案(关于Cookie)都会起作用。谢谢,这非常有效,我不必担心cookies,因为看到cookies的客户端必须打开cookies才能登录并查看其他可用内容。