diff --git a/src/public/javascripts/services/load_results.js b/src/public/javascripts/services/load_results.js index fc6f9a28f..8cdbaaa0a 100644 --- a/src/public/javascripts/services/load_results.js +++ b/src/public/javascripts/services/load_results.js @@ -100,4 +100,14 @@ export default class LoadResults { isOptionReloaded(name) { this.options.includes(name); } + + isEmpty() { + return Object.keys(this.noteIdToSourceId).length > 0 + || this.branches.length > 0 + || this.attributes.length > 0 + || this.noteReorderings.length > 0 + || this.noteRevisions.length > 0 + || this.contentNoteIdToSourceId.length > 0 + || this.options.length > 0; + } } \ No newline at end of file diff --git a/src/public/javascripts/services/ws.js b/src/public/javascripts/services/ws.js index 7b1978d94..c458c2d7d 100644 --- a/src/public/javascripts/services/ws.js +++ b/src/public/javascripts/services/ws.js @@ -44,7 +44,7 @@ async function handleMessage(event) { } if (message.type === 'sync') { - const syncRows = message.data; + let syncRows = message.data; lastPingTs = Date.now(); $outstandingSyncsCount.html(message.outstandingSyncs); @@ -90,6 +90,8 @@ function waitForSyncId(desiredSyncId) { return Promise.resolve(); } + console.log("Waiting for", desiredSyncId, 'current is', lastProcessedSyncId); + return new Promise((res, rej) => { syncIdReachedListeners.push({ desiredSyncId, @@ -322,13 +324,19 @@ async function processSyncRows(syncRows) { }); syncRows.filter(sync => sync.entityName === 'options').forEach(sync => { + if (sync.entity.name === 'openTabs') { + return; // only noise + } + options.set(sync.entity.name, sync.entity.value); loadResults.addOption(sync.entity.name); }); - const appContext = (await import("./app_context.js")).default; - appContext.triggerEvent('entitiesReloaded', {loadResults}); + if (!loadResults.isEmpty()) { + const appContext = (await import("./app_context.js")).default; + appContext.triggerEvent('entitiesReloaded', {loadResults}); + } } export default { diff --git a/src/services/ws.js b/src/services/ws.js index 8ce2ca9a9..b683eb93e 100644 --- a/src/services/ws.js +++ b/src/services/ws.js @@ -98,8 +98,7 @@ async function fillInAdditionalProperties(sync) { } async function sendPing(client) { - const syncRows = cls.getSyncRows() - .filter(r => r.entityName !== 'recent_notes' && (r.entityName !== 'options' || r.entityId !== 'openTabs')); // only noise ... + const syncRows = cls.getSyncRows(); for (const sync of syncRows) { try {