Meteor,ReactJS,MongoDB:当用户离开页面时执行某些操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Meteor,ReactJS,MongoDB:当用户离开页面时执行某些操作相关的知识,希望对你有一定的参考价值。
我正在尝试构建一个连接两个随机用户的匹配算法,但是当用户离开页面时,我找不到删除连接(在MongoDB集合中生成,因此我需要删除查询)的方法。
答案
也许window.onbeforeunload在这里会有所帮助。它在用户离开页面时执行javascript。
流星:
Meteor.startup(function(){
$(window).bind('beforeunload', function() {
closingWindow();
});
});
closingWindow = function(){
...
}
阵营:
componentDidMount() {
window.addEventListener('beforeunload', this.handleLeavePage);
}
componentWillUnmount() {
window.removeEventListener('beforeunload', this.handleLeavePage);
}
handleLeavePage() {
...
}
另一答案
用户如何触发页面离开,是通过单击按钮?一段时间后? MongoDB是实时的,如果两个用户之间的连接基于数据库,则将数据库连接设置为null或删除其实例+发布和订阅的使用将起到作用。这是一个例子:
const CheckIfConnection = Meteor.subscribe('collectionsubscription',userId1,userId2)
if(CheckIfConnection.ready()){
const connection = Collection.'ConnectionCollectionName'.findOne();
//Pass it on the component
}
在Component方面,你可以拥有一个'ComponentWillReceiveProps',它将在prop(来自容器)来改变时触发,即连接是Gone时触发的。这将通过数据库方法在您的匹配算法上做到诀窍:)
以上是关于Meteor,ReactJS,MongoDB:当用户离开页面时执行某些操作的主要内容,如果未能解决你的问题,请参考以下文章