我有一个有趣的问题,我认为以前没有被问过,对我们中的一些人来说应该是一个体面的挑战。首先,我是firebase的新手 - 大约2天(如果那样)。我一直在阅读文档,但似乎无法找到答案。
我的情况是这样的: 我从实时数据库中提取用户数据,它填写了我网页中的许多字段。
问题是:
每次页面重新加载时(即使在home.html
和page2.html
之间更改导航),区域都会留空,直到脚本重新加载数据。
我的问题是: 有没有办法我只能加载一次数据,这样问题就不会再出现了?
我试过了:
once()
函数。没有用,因为每次加载页面时仍会调用脚本。 其他可能的解决方案: 我可以存储一个变量来指示数据之前是否已发送过吗?我该怎么做?
有什么想法吗?谢谢大家!
答案 0 :(得分:2)
有多种方法可以实现这一目标。您可以编写单个页面应用程序,以便每个页面都不是重新加载(查看角度,反应等等),或者您可以使用浏览器localStorage来存储结果。
答案 1 :(得分:2)
您可能需要考虑使用session storage或local storage。
会话存储的作用是使您能够将某些变量保存到本地缓存中,直到浏览器关闭时才会清除该缓存。本地存储用于相同的事情,唯一的区别是它在浏览器关闭时不会被清除。
我认为,对于这种情况,会话存储就足够了,因为您不希望永久保存用户数据,只是因为有些变化。
要完成此任务,您可以执行类似
的操作if(sessionStorage.getItem("updated")){
// get the data from the session storage
} else {
// get from firebase
sessionStorage.setItem("updated",true);
}
每当页面加载时。
希望这有帮助。
答案 2 :(得分:0)
这取决于使用存储。会话存储,本地存储,IndexedDB,Cookie等。(只需在Google上搜索它们并研究这些存储即可。)
当然,您可以使用appendChild。(在google中再次搜索)
之后,使用该附录存储在本地存储中。