ディスカッション サイトの場合、ログインしているだけでなく、現在ディスカッション サイトをアクティブにしているユーザーを表示したいと考えています。そのため、Meteor アプリケーションにログインしているユーザーが別の場所でサーフィンをすると、そのユーザーの名前はディスカッション サイトでグレー表示されます。
誰がログインしているかを知るのは簡単ですが、自分のページにいるユーザーを知るにはどうすればよいですか?
ディスカッション サイトの場合、ログインしているだけでなく、現在ディスカッション サイトをアクティブにしているユーザーを表示したいと考えています。そのため、Meteor アプリケーションにログインしているユーザーが別の場所でサーフィンをすると、そのユーザーの名前はディスカッション サイトでグレー表示されます。
誰がログインしているかを知るのは簡単ですが、自分のページにいるユーザーを知るにはどうすればよいですか?
Page Visibility APIを探しています。それはあなたが望むことを正確に行います。それを使用すると、現在のドキュメントがユーザーによって閲覧されているかどうかを検出できます。もちろん、イベントを介して可視性の変化を検出できます。
基本的な例を次に示します。
//Inside a Meteor.startup, onRendered callback...
document.addEventListener('visibilityChange', changeUserState);
function changeUserState() { //You can define that higher to respect hoisting
if (document.hidden) {
setUserInactive();
}
else {
setUserActive();
}
}
MDN ページによると、これは IE < 10 では機能しないことに注意してください...