3

誰かがサイト/ページを離れたかどうかを確認し、離れた後にアクションを実行する方法を知りたいと思っていました. 私はここを読んでいて、これを見つけました:

いいえ、ありません。最善の方法は、AJAX リクエストを X 秒ごとに送信することです (おそらく、ユーザーがマウスを動かした場合のみ)。サーバーが 2X 秒間リクエストを受信しない場合は、ユーザーが離れたと想定します。

それは私が以前に計画していたことですが、サーバーがリクエストの送信を停止した場合、サーバーに何かをさせるにはどうすればよいでしょうか (私の場合は、DB から削除することです)。私が考えることができる例は、Facebook でサイトにアクセスするときに、ここにいてオンラインであることを伝える方法です。これは、チャットではオンラインとしてマークされますが、離れるとオフラインとしてマークされます。そんなことがあるものか?

編集: cron ジョブをしばらく使用した後、Web ホスティング サイトは、サイト上で「ライブ」感を生成するのに十分な頻度で cron ジョブを実行することを好まないことがわかりました。代わりに、node.js を見つけました。それは 1000 倍良く機能し、はるかにシンプルです。同じ問題を抱えている人なら誰でも使用することをお勧めします。ホスティングを購入するのは非常に安価であり、習得も簡単です.Javascriptを知っていれば、問題なく構築できます. 非同期がどのように機能するかを必ず知っておいてください。

4

3 に答える 3

2

珍しい方法ではありませんが、定期的に cron ジョブを実行してユーザーのリストをチェックし、ユーザーが X 分間アクティブでない場合は XYZ を実行します。

于 2012-10-08T18:54:58.823 に答える
1

Facebook は、Jabber サービス経由で XMPP プロトコルを使用して、ユーザーとの常時またはリアルタイムの接続を確立します。ただし、これを実装するのは簡単なことではありません。コメントで述べたように、最も簡単な解決策は、クライアントが数秒ごとにサーバーに AJAX 要求を行うようにして、ユーザーがまだサイトを表示しているかどうかをサーバーが確認できるようにすることです。

あなたの質問に関連しているかもしれない私の質問をチェックしてみてください。

于 2012-10-08T18:53:27.850 に答える
1

開発中に私が覚えている唯一の方法は、100% 信頼できるものではありません。多くの要因が実際に、そして最も可能性が高いのは、それが不発になったり、完全に実行されなかったりする可能性があるからです。JavaScriptを無効にする人まで。これは、今日の Web サイトがまとめられている方法ではありそうにないことです。しかし、人々にはそれをオフにするオプションがあり、悪意を持って行動している人も同様にオフにする傾向があります.

とにかく、私が読んだことはありますが、あまり在庫を入れていない方法は、onunload()イベントです。<body>タグのようなものに結ぶこと。

例:

<body onunload="myFunction()">

myFunction()あなたがやりたいことを何でもするためのちょっとした JavaScript はどこにありますか。

繰り返しますが、多くの理由で非常に信頼できるとは言えませんが、ほぼすべてのクライアント側言語で最高のものだと思います.

于 2012-10-08T18:55:03.810 に答える