Как получить уникальный идентификатор из Firebase на нескольких страницах - PullRequest
0 голосов
/ 01 апреля 2020

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

1 Ответ

1 голос
/ 01 апреля 2020

Проблема может быть переформулирована так, чтобы иметь значение переменной, доступное через различные страницы и файлы js.

  • Мой предпочтительный способ сделать это - с большим количеством данных - это невидимая пользователю базовая страница, загружающая «глобальный скрипт». Эта базовая страница загружает и выгружает все остальные страницы (включая файлы js и css). Поскольку переменная в вашем случае firebaseID определена глобально, она работает.
  • Если она не имеет смысла, вы можете также поместить ее в LocalStorage (предпочтительно в зашифрованном виде). ​​Это также поможет, если пользователь захочет приостановить опрос и позже до фини sh это. (У вас есть 5 МБ на мобильных устройствах и 10 МБ на рабочем столе).

Подробнее о первом решении:
Простая часть - вставить HTML в другое HTML. Я использую сгенерированные сервером представления, поэтому базовая страница добавляется и удаляется HTML по мере необходимости. Более сложная часть - это страница (представление), специфицирующая c загрузка js.
В моем случае пользователи могут перемещаться по навигации до тех пор, пока они, наконец, не отправят и не закончат sh. Если вы разрешаете только последовательное движение вперед, а не назад - это проще. Я на самом деле мими c спокойное поведение. Некоторые строительные блоки в базовом сценарии включают

// Some global vars
var statMsg = "";
var navTargetInitial= "app";
var navTarget;
var htmlDir = "app";    // directory of the html templates
var scriptDir = "js";   // directory of the user scripts

var routes = [
{
    navTarget: "main", 
    loadScript: true,
    navTitle: "Survey page 1",
    navMenutext: "Page 1"
}, {
    navTarget: "app",  
    loadScript: true,
    navTitle: "Survey page 2",
    navMenutext: "Page 2"
}, 
....
];

// Then docReady beside other stuff
function docReady() {
// other stuff
nav2Page(navTarget);
}

// here we handover data, put relevant things to sessionStorage
window.onbeforeunload = function (e) {
// Do stuff
};

 // here we cleanup
window.onunload = function () {
    // cleanup
};

Важная часть - загрузка нового js после того, как html находится в DOM, поэтому важной частью является обработчик событий для загруженного DOM события

document.addEventListener("DOMContentLoaded", 
 loadJScript(navScript, function(response, status, xhr ){// error handling }

Остальное - ajax, обработка ошибок, реакция на клики при переходе назад / вперед по истории страницы и соответствующая реакция на нее. Надеюсь, это поможет

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