【问题标题】:How To Stop Data Reloading On Refresh Firebase如何在刷新 Firebase 时停止数据重新加载
【发布时间】:2017-05-09 12:39:56
【问题描述】:

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

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

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

我的问题是: 有没有办法只能加载一次数据,这样问题就不会再发生了?

我试过了:

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

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

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

【问题讨论】:

    标签: javascript html firebase firebase-realtime-database


    【解决方案1】:

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

    会话存储的作用是使您能够将某些变量保存到本地缓存中,直到关闭浏览器才会清除该缓存。本地存储是做同样的事情,唯一的区别是关闭浏览器时不会清空。

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

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

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

    每当页面加载时。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      有多种方法可以做到这一点。您可以编写一个单页应用程序,这样每个页面都不会重新加载(查看 angular、react 等...),或者您可以使用浏览器 localStorage 来存储结果。

      【讨论】:

        猜你喜欢
        • 2019-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-16
        • 1970-01-01
        • 2012-10-07
        • 1970-01-01
        • 2014-07-21
        相关资源
        最近更新 更多