Как отложить загрузку при прослушивании значимых событий? - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь создать сводную панель в режиме реального времени для огромного количества (около 100К) точек данных. Текущая версия корректно отслеживает изменения в реальном времени после начальной загрузки, но на панели инструментов нет данных в течение примерно 4 секунд при первой загрузке.

Данные были денормализованы, поэтому by_date имеет такую ​​структуру один ниже, каждая дата содержит тысячи uid клавиш, только последняя доступная дата актуальна для приборной панели.

{
   [date: string]: {
      [uid: string]: {
         values: number;
         status: boolean;
      };
   };
}

Функция прослушивания в реальном времени - одна ниже.


function observe() {
           db.ref("by_date")
             .orderByValue()
             .limitToLast(1) // only last available date is loaded
             .on("value", function (dataSnapshot) {
                const data = dataSnapshot.val();
                // data json object is put in a state variable
                // changes on the state will trigger a parial dashboard refresh
                setLastDayReportsDb(data); 
            });
      }

То, что я пытаюсь найти, - это способ переноса данных в виде потока или разбивки на страницы, но при этом продолжать прислушиваться к любым изменениям в значениях, чтобы сохранить живой аспект панели управления в реальном времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...