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:当用户离开页面时执行某些操作的主要内容,如果未能解决你的问题,请参考以下文章

Meteor 无法连接到 MongoDB

在 Meteor.js 中使用多个 Mongodb 数据库

Meteor、MongoDB通过订阅获取部分数组

Meteor/Mongodb - 数组、子文档和重叠订阅

Meteor -- 如何连接到 mongodb? [复制]

在 Meteor 或 Node 中批量插入 mongodb