2012-03-29 9 views
2

私はフェイデンなどの小さなイントロを持っています。しかし、これは一度実行するのが好きです。ユーザーがホームページに戻るたびにイントロを実行する必要はありません。一度jsファイルを実行する方法はありますか?jsファイルを1回だけ実行する

+1

信頼できません。 – aaronasterling

+1

あなたはクッキーを使うことができますが、信頼できません。 IPトラッキングも完璧ではありません。ローカルストレージには、ユーザーの同意も必要です。短い答え:いいえ。 – Halcyon

+0

エバークーシーと呼ばれるこの悪いことがあります。 – Bakudan

答えて

1

イントロ機能を実行するときは、後で設定するクッキーを確認してください。クッキーが存在する場合、関数はエフェクトを表示せずに中止する必要があります。クッキーが存在しない場合は、エフェクトを表示してクッキーを設定します。

もちろん、この解決策はウェブブラウザのインス​​トールごとにのみ信頼できます(訪問時にCookieが有効になっていることが前提です)。したがって、同じユーザーが別のブラウザのサイトにアクセスした場合、その影響が再び発生する可能性があります。逆に、新しいユーザーがすでにサイトにアクセスしたブラウザを使用した場合、そのユーザーはその影響を表示しません。

これは完璧ではないかもしれませんが、おそらく「十分に良い」 - 主なユースケースをカバーし、実装が簡単です。

2

HTML5 sessionStorageを使用して、イントロが一度再生されたときを記録する方法があります。このメモリは、セッション中も保持されます。

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

if (played !== "true") { 

    // play intro 

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

これは単純に(セッション)クッキーを使用するよりも多くの非互換性を受けませんか? – MrWhite

+2

@ w3d HTML5はクールです!未来を宣言するしかし現実的には、[この表](http://dev-test.nemikor.com/web-storage/support-test/)をチェックしてください。 87%のカバレッジのように見えます。あなたがまだIE 6または7を使用している場合、おそらくあなたはすでにあなたがイントロを見たことを覚えておくには古すぎるでしょう。 – paislee

関連する問題