Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何跨多个页面从firebase获取唯一ID_Javascript_Firebase - Fatal编程技术网

Javascript 如何跨多个页面从firebase获取唯一ID

Javascript 如何跨多个页面从firebase获取唯一ID,javascript,firebase,Javascript,Firebase,我的项目是有几页的调查。我想把几页的答案上传到同一个uniqueID中。现在我可以从页面js文件中获取uniqueID,但如何将此uniqueID传输到其他js文件,以便将数据上载到同一uniqueID。问题可以重新表述为如何通过不同的页面和js文件访问变量值 我更喜欢的方法是使用大量数据,在加载“全局脚本”的用户看不到一个基本页面。此基本页加载和卸载所有其他页面(包括js和css文件)。由于本例中的变量firebaseID是全局定义的,因此它可以工作 如果数据不合理,您也可以将其放入本地存储

我的项目是有几页的调查。我想把几页的答案上传到同一个uniqueID中。现在我可以从页面js文件中获取uniqueID,但如何将此uniqueID传输到其他js文件,以便将数据上载到同一uniqueID。

问题可以重新表述为如何通过不同的页面和js文件访问变量值

  • 我更喜欢的方法是使用大量数据,在加载“全局脚本”的用户看不到一个基本页面。此基本页加载和卸载所有其他页面(包括js和css文件)。由于本例中的变量firebaseID是全局定义的,因此它可以工作
  • 如果数据不合理,您也可以将其放入本地存储(最好是加密的),如果用户希望暂停调查并稍后完成调查,这也会有所帮助。(移动设备上有5MB,桌面上有10MB)
有关解决方案一的更多详细信息:
简单的部分是将HTML插入到其他HTML中。我使用服务器生成的视图,以便根据需要添加和删除HTML。 更难的部分是特定于页面(视图)的js加载。
在我的用例中,用户可以通过导航跳转,直到最终提交并完成。如果你只允许顺序前进而不允许后退,那就更容易了。我实际上是在模仿一种安静的行为。基本脚本中的某些构建块包括

// 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
};
关键部分是在html进入DOM后加载新的js,因此关键部分是加载的事件DOM上的eventhandler

document.addEventListener("DOMContentLoaded", 
 loadJScript(navScript, function(response, status, xhr ){// error handling }
剩下的是ajax、错误处理、对页面历史中返回/前进的点击的反应以及相应的反应。 希望这有帮助

你能更详细地解释一下“我喜欢的方式”吗?