-2

asp.net Web サイトの現在の訪問者数を確認するにはどうすればよいですか? 私はすでに次の手法に精通していますが、正確な結果にはほど遠いものです。

  • アプリケーション変数 Application["UserCount"] を作成します
  • セッション開始時に増やす
  • セッション終了時に減らす

この手法では、要求が Web クローラー、ロボット、またはその他のスパマー サーバーからのものであるかどうかを確認しません。これらのサーバーは、新しいセッションで複数のページを要求する可能性があり、数を膨らませる可能性があります。

同じウィンドウまたは別のウィンドウで他のサイトを表示しているが、少なくとも私のサイトが少なくとも 1 つのタブまたは窓。

私のページのそれぞれをロードし、私のサイトが開いていることをサーバーに伝えるajax隠しリクエストメーカーのようなもの。

ありがとう。

4

2 に答える 2

1

リクエストのユーザーエージェントを見ることができます。Request.Browser.Crawlerリクエストが検索エンジンのクローラーからのものかどうかを確認するために使用できます。ブラウザがクローラの場合は true を返します。

ページへの JavaScript 呼び出しを使用して、訪問者数を更新することもできます。これを上記の手法と組み合わせて、リクエストが実際のユーザーである場合にのみ訪問者数が更新されるようにすることができます。ユーザー数を減らすときは、リクエストがクローラーでないことも確認する必要があります。例えば

        //increase the user count
        if (Request.Browser.Crawler == false)
        {
            Application["user_count"] = +1;
        }

        //decrease the user count
        if (Request.Browser.Crawler == false)
        {
            Application["user_count"] = -1;
        }

アプリケーションの global.asax ファイルで Session_End および Session_Start イベントを使用して、同じイベントを実行することもできます。

于 2012-04-18T15:50:36.403 に答える
1

アプリケーションを使用してデータを保存できます。Web サイトや Web アプリケーションの初期段階ではまったく問題ありません。ただし、サイトが読み込まれたときのアプリケーション状態への複数アクセスの問題を調べる必要がある場合があります。

于 2012-04-18T16:28:49.910 に答える