仅当内容未在浏览器中缓存时才运行预加载器

时间:2017-05-09 16:59:06

标签: jquery

我有一个非常简单的jQuery预加载器如下:

$(window).load(function() {
            $("#load-info").fadeOut();
            $("#preloader").delay(500).fadeOut("slow", function() {
                this.remove();
            });
        });

预加载器ID是页面整个高度的白色背景,#load-info是加载文本和微调器。完成微调器和加载消息后淡出,然后白色背景淡出并显示页面内容,并从DOM中删除该项目。这很好用,但我想尝试更进一步,使用户不会看到任何预加载器,如果他们只是刷新或重新访问页面。

我知道我可以简单地删除淡入淡出,但是当预加载器实际上是必要的时候,它会过于突然。我想也许是一个时间戳,检查时间是否超过,让我们说500毫秒,运行预加载器,否则只显示内容......但我不知道这是不是这样做的正确方法。

如果只在实际需要加载页面而不是每个页面视图上运行一个预加载器,我是如何运行预加载器的,我是否过度复杂了?

1 个答案:

答案 0 :(得分:0)

这可能比您正在寻找的更复杂,但您可以在服务器端处理请求期间检查是否存在cookie。如果cookie不存在,您知道该用户第一次在页面上,因此不会缓存。然后在响应中设置cookie,或在JavaScript中设置它。如果cookie 确实存在,那么您就知道不显示预加载器。