From 6c1d5b8cd356baa24fc1457cc544224e55902783 Mon Sep 17 00:00:00 2001 From: Sam Saffron Date: Tue, 8 Mar 2016 23:28:38 +1100 Subject: [PATCH] FIX: spinning favicon in Firefox Delay starting up ajax calls in MessageBus --- .../discourse/initializers/message-bus.js.es6 | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/discourse/initializers/message-bus.js.es6 b/app/assets/javascripts/discourse/initializers/message-bus.js.es6 index c6536213ac8..650a9544a8a 100644 --- a/app/assets/javascripts/discourse/initializers/message-bus.js.es6 +++ b/app/assets/javascripts/discourse/initializers/message-bus.js.es6 @@ -12,7 +12,20 @@ export default { siteSettings = container.lookup('site-settings:main'); messageBus.alwaysLongPoll = Discourse.Environment === "development"; - messageBus.start(); + + // we do not want to start anything till document is complete + messageBus.stop(); + // jQuery ready is called on "interactive" we want "complete" + // Possibly change to document.addEventListener('readystatechange',... + // but would only stop a handful of interval, message bus being delayed by + // 500ms on load is fine. stuff that needs to catch up correctly should + // pass in a position + const interval = setInterval(()=>{ + if (document.readyState === "complete") { + clearInterval(interval); + messageBus.start(); + } + },500); messageBus.callbackInterval = siteSettings.anon_polling_interval; messageBus.backgroundCallbackInterval = siteSettings.background_polling_interval;