启动页面可能很烦人。 你知道那些……比如在你看到想要访问的页面之前,被迫观看一些广告。或者可能是你每次访问网站时都会自动重定向到的某个花哨的网站介绍。太好了。
在某些情况下,启动页面可能有用。假设你正在运营一个乐队的网站,并且他们发行了一张新专辑。你可能希望将访问者重定向到一个介绍新专辑的启动页面。这甚至可能受到乐队粉丝的欢迎,他们希望了解新专辑并有机会购买它。但是,如果他们第五次访问该网站并被重定向,他们肯定不会欢迎它。
让我们解决这个问题!
所需的功能
首先让我们明确所需的功能
用户之前访问过此网站吗?
是:转到常规主页
否:重定向到启动页面
如果答案为否,我们需要确保下次询问此问题时,答案为是。我们如何实现这种神奇的网络智能?借助互联网最美味的功能:cookie!
设置和获取 Cookie
在 Web 上处理 Cookie 的方法有很多,但正如我们在这里喜欢做的那样,让我们利用 jQuery 的强大功能。首先,我们需要在页面上包含 jQuery 库以及非常棒的 cookie 插件
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/cookie.js"></script>
<script type="text/javascript">
$(function() {
.... do stuff....
});
</script>
因此,回顾我们所需的功能,我们需要为我们的主页编写类似以下内容
检查 Cookie。
找到 Cookie 了吗? 不执行任何操作。
没有 Cookie? 设置 Cookie,然后重定向到启动页面。
在 jQuery 中,看起来像这样
$(function() {
var COOKIE_NAME = 'splash-page-cookie';
$go = $.cookie(COOKIE_NAME);
if ($go == null) {
$.cookie(COOKIE_NAME, 'test', { path: '/', expires: 6 });
window.location = "/splash.php"
}
else {
}
});
其中的“6”是“Cookie 过期前的几天”,所以你可以根据需要使用它。
记住……
……能力越大,责任越大!
又一个很好的例子。但就我个人而言,我发现 30kb 的 jQuery 没有必要做这种事情:加载时间会多花一点……几乎没什么用。
只需多几行 JS,你就可以用少 29.9kb 的代码做到同样的事情 ;-)
我认为作为用户,而不是开发乐队网站的开发者。
顺便说一句:一如既往的出色工作:p
PHP 可能是更好的方法
setcookie(‘SplashCookie’,’1′,time()+(60*60*24*365));
启动页面很糟糕,使用 Cookie 仅显示启动页面只会让情况变得更糟。
另外,你不需要你的 else 语句。
我确实在某种程度上同意 V1 关于使用启动页面等的观点,十次中有九次,它只是一个大多数用户不想点击的额外点击。
也就是说,如果你正在推出一个全新的产品或功能,或者正在更改永久链接结构(天哪!),它可以作为短期解决方案来通知用户。
另外,@Romz 你应该发布 JS 解决方案,我想看看它 :)
无论如何,这是一篇有趣的文章
干杯,
George
Twitter – geenius545
http://www.geenius.co.uk
最糟糕的网站是我团队的网站。
http://www.liverpoolfc.tv.
每次你访问或在页面之间停留太久时,都会出现一个启动广告页面。总的来说,这是一个非常糟糕的网站。去看看吧。很糟糕。
不错的文章,但我不同意它 :-)
我现在想到的一个想法是在屏幕顶部放置一个弹跳图标,让用户点击它,然后查看信息。
或者,如果你必须显示临时信息,你觉得使用悬停 div(可能是模态)怎么样?
仅供参考……
另外,你说它用于显示新专辑很有用。但是……嗯……主页不是为此创建的吗?
启动页面现在唯一的用途是用于完全使用 Flash 驱动的网站,以通知用户他们需要 Flash 才能查看该网站。或者用于广告。我的意思是,如果说苹果的启动屏幕有广告,谁不想为此支付高价呢
Apple 由以下机构提供支持:css-tricks.com
:)
有用的东西。也许我也应该开始制作启动页面(上面有广告和博客概述)。:>
偶然发现。
@V1(#7):哈哈……
我希望这不会太偏离主题,但在使用启动页面时要小心。
启动页面对 SEO 非常不利。你网站的第一页是最强大的,因为它是蜘蛛着陆的地方,也是接收页面排名好处并将其传递到内部页面的页面。
现在,将启动页面作为你的第一页,你就失去了所有这些好处。你的“真实”第一页将被视为二级页面,不那么重要,这肯定不是我们想要的。
在我看来,一个好的替代方案是 Enrico 在上面描述的。
不错……但为什么不使用 php 而是使用 js 来做这件事呢?
我实际上认为这是个不错想法的开始,不一定用于页面重定向(我同意启动页面很糟糕)。我宁愿看到如果找到 Cookie,则将横幅更改为显示“欢迎回来”或类似内容。
你还可以使用类似的方法来决定图像预加载器是否需要预加载滚动效果,或者它们是否可能位于缓存中。可以节省加载时间。
对 Cookie 使用的进一步扩展可以是在采取操作后删除链接,并且不再显示它。例如,在某人实际注册后,设置一个 Cookie 以删除 RSS 注册横幅。
它可以用于另一个烦人的目的:通过一次性调查收集数据 :)
假设你希望用户在访问网站的特定部分之前填写一个小表单。这样的解决方案非常有用。
作为开发者和最终用户,我不同意这种做法,但营销跟踪者很喜欢它(抱歉,“销售人员”) :)
Nuno。
本教程很棒,但是有没有办法阻止 Safari 重复两次重定向到启动页面?
Chris
你能更进一步,向我们展示如何将其与灯箱而不是重定向一起使用吗?这样,当页面加载时,它会执行灯箱灰显操作,然后用户只需关闭该框(一次)。
该死,对我来说不管用 :(
我已将其添加到我的 /index.php 中
链接文本
我不认为这在当前的 jQuery 版本中有效。你们可以更新一下吗?