假设在标签1中 - 当我入住Ember Store时 - 我有记录{id:" 1&#34 ;, firstname:" ABC" ,姓氏:" XYZ"}
在标签2中 - 当我入住Ember Store时 - 我有记录{id:" 1&#34 ;, firstname:" ABC" ,姓氏:" XYZ"}
现在如果我在tab1中更新记录说姓氏到KLM。 然后我可以在tab2中看到姓氏为XYZ
我使用以下策略 - 1.检查数据存储在store.peekALL中 2.如果数据不存在,则make store.query
在我刷新tab2之前,我没有获得最新值。
为什么不在选项卡中存储数据?
答案 0 :(得分:2)
只要浏览器处于打开状态并且存活,页面会话就会持续 页面重新加载和恢复。在新选项卡或窗口中打开页面 将导致启动新会话。 - Mozilla DOM存储指南
因此,每个新标签都是新会话。
您可以尝试
https://github.com/jerel/ember-storage
这是一个社区插件,可使用localStorage
在浏览器标签之间同步数据。
答案 1 :(得分:0)
为什么不在选项卡中存储数据?
浏览器默认禁止此操作。每个浏览器标签都是它自己的小世界,可以这么说。 Ember Data只是将所有数据存储在RAM中 - 这对于每个浏览器选项卡都是独立的。
如果您需要能够在应用程序的每个实例中同步数据,那么您可能希望查看服务器将新数据推送到客户端的一些方法(例如WebSockets)。除此之外,使用ember-storage
的建议是一个很好的建议,因为这是您可以在一个选项卡中存储数据并在另一个选项卡中检索数据的少数几种方法之一。