2012-03-29 109 views
2

我有一个小的介绍与fadein的等..但我只会喜欢这个运行一次。每次用户返回主页时,我都不想运行介绍。有没有办法运行一次js文件?只运行一次js文件一次

+1

不可靠。 – aaronasterling 2012-03-29 22:47:07

+1

你可以使用cookies,但它们不可靠。 IP追踪也不完美。本地存储也需要用户的同意。简答:不。 – Halcyon 2012-03-29 22:47:43

+0

这个邪恶的东西叫做evercookie。 – Bakudan 2012-03-29 22:49:24

回答

1

当你的介绍函数运行时,首先让它检查你稍后将设置的cookie。如果cookie存在,则函数应该中止而不显示效果。如果cookie不存在,则显示效果并设置cookie。

当然,这个解决方案只有在每个网页浏览器安装时才是可靠的(假设访问时启用了cookie)。因此,如果同一用户在另一个浏览器中访问该网站,他们可能会再次看到效果。相反,如果新用户使用已经访问该网站的浏览器,则他们将看不到效果。

这并不完美,但可能“足够好” - 它涵盖了主要的用例并且易于实现。

2

一个解决方案是使用HTML5 sessionStorage来记录介绍曾经播放过的时间。该记忆将持续进行会话:

var played = sessionStorage.getItem("played"); 

if (played !== "true") { 

    // play intro 

    // mark as played when finished 
    sessionStorage.setItem("played", "true"); 
} 
+0

与仅使用(会话)cookie相比,这会不会遭受更多不兼容问题? – MrWhite 2012-03-29 23:02:14

+2

@ w3d HTML5很酷!赞同未来。但实际上,请检查[此表](http://dev-test.nemikor.com/web-storage/support-test/);看起来像87%的覆盖率。如果你仍然在使用IE 6或7,那么你可能太老了,不记得你已经看过介绍。 – paislee 2012-03-29 23:10:16