From 233554a3d69f1cf3a509e540fc1623d17c357037 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 2 Dec 2017 22:00:42 +0200 Subject: [PATCH] Move global subscription to template subscription so that subscription will stop when template is unused. It's very important for efficiency espacially with large number of users. Thanks to mfshiu ! --- CHANGELOG.md | 5 +++-- client/components/cards/cardDetails.js | 4 ++++ client/components/settings/settingBody.js | 10 +++++----- client/components/users/userAvatar.js | 4 ++-- client/lib/unsavedEdits.js | 2 -- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 01358a7f7..10f4a0b48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,11 @@ This release adds the following new features: -* [Change password of any user in Standalone Wekan Admin Panel](https://github.com/wekan/wekan/pull/1372). +* [Change password of any user in Standalone Wekan Admin Panel](https://github.com/wekan/wekan/pull/1372); +* [Performance optimization: Move more global subscriptions to template subscription](https://github.com/wekan/wekan/pull/1373); * Update tranlations. Add Latvian language. -Thanks to GitHub user thuanpq for contributions. Thanks to translators for their translations. +Thanks to GitHub users mfshiu and thuanpq for their contributions. Thanks to translators for their translations. # v0.60 2017-11-29 Wekan release diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index b62f31d4a..e18de87cf 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -23,8 +23,12 @@ BlazeComponent.extendComponent({ this.parentComponent().showOverlay.set(true); this.parentComponent().mouseHasEnterCardDetails = false; this.calculateNextPeak(); + + Meteor.subscribe('unsaved-edits'); }, + + isWatching() { const card = this.currentData(); return card.findWatcher(Meteor.userId()); diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index 5b0159186..fabcc70cd 100644 --- a/client/components/settings/settingBody.js +++ b/client/components/settings/settingBody.js @@ -1,8 +1,3 @@ -Meteor.subscribe('setting'); -Meteor.subscribe('mailServer'); -Meteor.subscribe('accountSettings'); -Meteor.subscribe('announcements'); - BlazeComponent.extendComponent({ onCreated() { this.error = new ReactiveVar(''); @@ -11,6 +6,11 @@ BlazeComponent.extendComponent({ this.emailSetting = new ReactiveVar(false); this.accountSetting = new ReactiveVar(false); this.announcementSetting = new ReactiveVar(false); + + Meteor.subscribe('setting'); + Meteor.subscribe('mailServer'); + Meteor.subscribe('accountSettings'); + Meteor.subscribe('announcements'); }, setError(error) { diff --git a/client/components/users/userAvatar.js b/client/components/users/userAvatar.js index 1066c6328..be7a85d25 100644 --- a/client/components/users/userAvatar.js +++ b/client/components/users/userAvatar.js @@ -1,5 +1,3 @@ -Meteor.subscribe('my-avatars'); - Template.userAvatar.helpers({ userData() { // We need to handle a special case for the search results provided by the @@ -54,6 +52,8 @@ Template.userAvatarInitials.helpers({ BlazeComponent.extendComponent({ onCreated() { this.error = new ReactiveVar(''); + + Meteor.subscribe('my-avatars'); }, avatarUrlOptions() { diff --git a/client/lib/unsavedEdits.js b/client/lib/unsavedEdits.js index 17bb29b5a..9c02eb84e 100644 --- a/client/lib/unsavedEdits.js +++ b/client/lib/unsavedEdits.js @@ -1,5 +1,3 @@ -Meteor.subscribe('unsaved-edits'); - // `UnsavedEdits` is a global key-value store used to save drafts of user // inputs. We used to have the notion of a `cachedValue` that was local to a // component but the global store has multiple advantages: