Fix CPU spin on joining rooms

Ratelimit roomheader's updates and move some other things into
rate limited functions.
pull/21833/head
David Baker 2016-10-26 13:09:53 +01:00
parent f56aff7cb9
commit a2eb0a9cf0
2 changed files with 11 additions and 7 deletions

View File

@ -573,18 +573,17 @@ module.exports = React.createClass({
return;
}
if (this.props.ConferenceHandler &&
member.userId === this.props.ConferenceHandler.getConferenceUserIdForRoom(member.roomId)) {
this._updateConfCallNotification();
}
this._updateRoomMembers();
},
// rate limited because a power level change will emit an event for every
// member in the room.
_updateRoomMembers: new rate_limited_func(function() {
// a member state changed in this room, refresh the tab complete list
// a member state changed in this room
// refresh, the conf call notification state
this._updateConfCallNotification();
// refresh the tab complete list
this.tabComplete.loadEntries(this.state.room);
this._updateAutoComplete();

View File

@ -21,6 +21,7 @@ var sdk = require('../../../index');
var MatrixClientPeg = require('../../../MatrixClientPeg');
var Modal = require("../../../Modal");
var dis = require("../../../dispatcher");
var rate_limited_func = require('../../../ratelimitedfunc');
var linkify = require('linkifyjs');
var linkifyElement = require('linkifyjs/element');
@ -85,9 +86,13 @@ module.exports = React.createClass({
}
// redisplay the room name, topic, etc.
this.forceUpdate();
this._rateLimitedUpdate();
},
_rateLimitedUpdate: new rate_limited_func(function() {
this.forceUpdate();
}, 500),
_onRoomNameChange: function(room) {
this.forceUpdate();
},