2012-03-29 262 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