web-dev-qa-db-ja.com

jQueryで最初のページの読み込みを検出しますか?

ユーザーが最初にそのページに移動したときにページが読み込まれたときにのみいくつかのアクションを実行できるように、jQueryでページが最初に読み込まれたときを検出する必要があります。サーバー側のコードpage.ispostbasckに似ています。 $(document).readyをテストしましたが、ページが読み込まれるたびに起動するため、必要なものが提供されません。 jQueryLoad関数も試しました。ページの読み込みごとに起動します。したがって、ページの読み込みの例として、タイプボタンのページにHTML入力タグがあり、ポストバック(asp.netボタンなど)は起動されませんが、ページが再読み込みされ、$(document).readyが起動されます。

ありがとう

10
Jim Evans

最初のロード情報を保存するには、Cookieを使用する必要があります。

if (! $.cookie("cookieName")){
   // do your stuff

   // set cookie now
   $.cookie("cookieName", "firstSet", {"expires" : 7})
}

注:上記の例では jQuery Cookieプラグインを使用しています

17
Sarfraz

ページが初めてロードされたときにのみ発生するイベントは存在しません。

jQueryの.ready() event を使用してから、選択した方法(Cookie、セッション変数、ローカルストレージ、等。)。

注:この情報をユーザーレベルでDBに保存できない限り、このメソッドは絶対確実ではありません。それ以外の場合、ユーザーがCookieまたは選択した方法をクリアするとすぐに、「初回ロード」コードが再度起動されます。

8
James Hill

私はちょうどこの問題に遭遇しました、そしてこれは私がそれを処理した方法です。変数initialLoadを使用して、ページが最初に読み込まれた時間を追跡します。

var initialLoad = true;

$(document).ready(function() {
    ...
    ...
    ... 

    initialLoad = false;

});

次に、他の関数でこれを行うことができます:

if (initialLoad) {
    //Do work that is done when the page was first refreshed/loaded.
} else {
    //Do work when it's not the initial load.
}

これは私にとってはうまくいきます。ユーザーがすでにページにいて、いくつかのjQuery関数が実行されている場合、そのユーザーがページをロードしたばかりなのか、それともすでにページにいるのかがわかります。

6