让我们看看,我们有一个应用程序,用户可以在其中进行项目。他们甚至可以创建数百个项目,每个项目可以包含数百个部分,但只能与一个项目一起工作。我正在用firebase对其进行实时获取,如下所示:
/*
projectsOfUser = {
projectOne: {
// hundreds of attributes
},
projectTwo: {
//hundreds of attributes
},
//hundreds of projects (probably not, but it's possible)
}
*/
const listenProjectChanges = () => async dispatch => {
projectsdb.on("value", snap => {
const projects = snap.val();
dispatch({
type: "PROJECTS_SET",
projects
});
});
};
在上面的代码projectsdb
中,可以是所有项目的容器,也可以只是当前项目的容器。如果我们将它们分开,那么请先调用它,并获取当前项目的初始数据,然后再获取其余项目,这显然将具有更好的用户体验,但我只是想举例说明我的意思。当我们谈论用户有多少项目时,这个问题变得很有趣。如果用户只有两个项目,则可以得到好处,如果用户更改了当前项目,则数据将立即可用。我必须考虑所有数据都将存储在redux中,但是作为一个好点,数据被分离并展平,因此如果项目被更新,当前用户不使用该项目(这是可能的,因为用户共享项目,以便其他用户可以编辑其他项目,但是当前项目也是如此),这不会导致重新渲染。
主要问题是:什么时候值得其获取数据,以便将来使用该数据,但也许不立即使用该数据?哪个更有价值?浏览器内存还是正在获取数据?
答案 0 :(得分:0)
我将进行一次初始获取“元数据”,以便您可以执行诸如生成项目列表之类的事情。
如果要实时访问其所有项目,则可以使用在后台运行并获取必要位的服务工作者。