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"

Reply via email to