javascript - 如何在刷新 Firebase 时停止数据重新加载

标签 javascript html firebase firebase-realtime-database

我有一个有趣的问题,我相信以前没有人问过这个问题,对于我们中的一些人来说应该是一个不错的挑战。首先,我是 firebase 的新手——大约 2 天前(如果是的话)。我一直在阅读文档,但似乎找不到直接的答案。

我的情况是这样的: 我正在从实时数据库中提取用户数据,它填充了我网页中的许多字段。

问题是: 每次重新加载页面时(即使导航在 home.htmlpage2.html 之间更改),这些区域都会保留为空白,直到脚本重新加载数据。

我的问题是: 有没有办法让我只加载一次数据,这样问题就不会再次出现?

我已经尝试过:

  1. 利用 firebase 内置的 once() 函数。不起作用,因为每次加载页面时仍会调用脚本。

其他可能的解决方案: 我可以存储一个变量来指示数据之前是否已发送过吗?我该怎么做?

有什么想法吗?谢谢大家!

最佳答案

您可能需要考虑使用session storagelocal storage .

session 存储的作用是使您能够将某些变量保存到本地缓存中,该缓存在浏览器关闭之前不会被清除。本地存储的作用是一样的,唯一的区别是浏览器关闭时它不会被清除。

我认为对于这种情况, session 存储就足够了,因为您不希望永久保存用户数据,以防万一发生变化。

要完成此任务,您可以执行类似的操作

if(sessionStorage.getItem("updated")){
  // get the data from the session storage
} else {
  // get from firebase
  sessionStorage.setItem("updated",true);
}

每当页面加载时。

希望这有帮助。

关于javascript - 如何在刷新 Firebase 时停止数据重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41307684/

相关文章:

javascript - 是否有像15个谜题一样无法解决的8个谜题

html - CSS - 当 :hover instead of 1 block 时完整网站正在移动

firebase - 如何在Firebase云Firestore中查询一个字段然后按另一字段排序?

javascript - 如何使这个正则表达式 safari/iOS 兼容?

javascript - 如何在 PhantomJS 中包含多个 JavaScript 库?

PHP 分页 - 仅 1 页有效

javascript - 如何使用哈希制作动态更改页面的选定按钮

swift - Firebase 存储 downloadURL( )' is deprecated: Use ` StorageReference.downloadURLWithCompletion()

android - 功能部署错误 Firebase

javascript - 如何删除/销毁 flowplayer 实例?