Hi Victoria/Hackers, On Tue, Jun 12, 2018 at 9:52 PM, Victoria Henry <vhe...@pivotal.io> wrote:
> Hi Aditya, > > > It is not possible to fire event in another tab/new browser window. For >>>> example, query tool can be open in another tab. And thus, changes are not >>>> reflected there. There are solutions available like updating the >>>> localStorage of the browser but those are not reliable and does not work >>>> properly on different browsers. >>>> >>> To communicate between browser tabs we can use cookie polling on client >>> side it self (at least it will avoid polling over http). >>> The main tab will update only preference specific cookie when preference >>> is updated and other tabs will poll required cookies (not all) >>> with specific interval (1 second can be configurable). >>> >> Polling is a solution but I think it should be the last option. http >> polls will not be required anyway as we have preference cache in the >> browser object. >> > > Maybe it's better to poll only when an editor is open in a separate > window? What would we be polling for and how would be tell the backend > that something changed during the poll? > Currently I am using the cache_preferences function to fire the events. cache_preferences is called whenever preferences are changed. I suggest we add kind of version for the preference cache, lets say prefcache_version and we can set it to current epoch time whenever the cache_preference is called. Now, when a new tab/window is opened, it will store the version of prefcache it is having. When the main window changes the preferences and cache_preference is called, the prefcache_version will increase to current epoch time. New tab polling can check if the version has increased and can update its preferences along with prefcache_version. Please let me know if any suggestions. > Thanks > Victoria & Joao > -- Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB Software Solutions | Pune "Don't Complain about Heat, Plant a tree"