2017-08-11 67 views
0

假设如表1 - 当我在灰烬商店检查 - 我有记录{ID: “1”,姓: “ABC”,名字: “XYZ”}灰烬商店亘古不变的数据持久化中的标签之间

在选项卡2 - 当我检查的灰烬商店 - 我有记录{ID:“1”,姓:“ABC”,名字:“XYZ”}

现在如果我更新记录说姓氏荷航在TAB1 。 然后,我为能够看到姓氏为XYZ在TAB2

我使用下面的策略 - 通过store.peekALL 2. 1.检查数据是否存在在商店如果数据不存在,则使store.query

直到我刷新tab2我没有得到最新值。

为什么不在标签中存储数据?

+0

你能详细说明Tab1和Tab2是什么意思,你的应用程序是不同的实例吗?或者它们是你应用程序中的内部标签? 至少从你的问题,我知道你无法看到更新的数据。如果这是正确的,你能告诉我你是如何更新数据到呃商店,以便我可以有更多的细节来回答你的问题。 –

回答

2

只要浏览器处于打开状态并且在页面重新加载和恢复时仍然存在 ,页面会话将持续。在新选项卡或窗口 中打开页面将导致启动新会话。 - Mozilla DOM存储指南

因此,每个新选项卡都将成为新会话。

您可以尝试

https://github.com/jerel/ember-storage

这是一个社区的插件,使用同步浏览器localStorage标签之间的数据。

+0

我想利用烬宝商店。您建议的插件只是将数据保存在localstorage中。我可能有多个收集和很多记录,所以它不可行。 –

0

为什么不将数据存储在标签中?

浏览器在默认情况下防止这种情况。每个浏览器标签都是它自己的小世界,可以这么说。 Ember Data只是将所有数据存储在RAM中 - 这对每个浏览器选项卡都是分开的。

如果您需要能够在应用程序的每个实例中同步数据,那么您可能希望查看一些方法让服务器将新数据推送到客户端(例如WebSockets)。除此之外,使用ember-storage的建议是一个很好的建议,因为这是您可以将数据存储在一个选项卡中并在另一个选项卡中检索数据的几种方法之一。