I’m sticking to the shared local data solution mentioned in the question using
localStorage. It seems to be the best solution in terms of reliability, performance, and browser compatibility.
localStorage is implemented in all modern browsers.
storage event fires when other tabs makes changes to
localStorage. This is quite handy for communication purposes.
References can be found here:
Webstorage – storage event