2017-08-26 106 views
0

我有一个生成JSON格式字符串的脚本。我想在另一个脚本中使用此字符串中包含的数据。我不确定从哪里开始。我想过从同一个目录运行这两个脚本,并以某种方式将JSON数据输出到文本文件中,然后将其加载到第二个脚本中,但这看起来更像是一种解决方法而不是实际的解决方案。是否有可能以某种方式从第一个脚本中调用第二个脚本并将其传递给它?就像在单个脚本中的函数之间传递数据一样?在Javascript文件之间共享数据

FWIW我试着简单地将两个脚本的功能合并为一个,但是这导致了我无数的头痛,没有任何进展。为了简单起见,我宁愿将每个脚本执行的功能分开(除了明显的数据共享要求外)。

任何意见或正确的方向点将不胜感激。

+0

你可以使用ES6导入/导出 – Liroy

回答

0

很难说没有一些代码引用,但可能只是一个全局变量与检查,如果它为空。

var myJsonString = null; 

function one() { 
    var jsonString = "[]"; 
    myJsonString = jsonString; 
} 

function two() { 
    //string not set so bail 
    if (myJsonString === null) { return; } 
} 
0

所以它实际上取决于你所使用的编程环境是什么,如果它的网络浏览器,所有的代码是在实际的全球空间,才能运行。所以如果你在你的html文件中有<script src="file1">然后<script src="file2">,并且你在第一个文件中放入x = 10并在第二个文件中使用它,那么你将没有问题。如果您使用的是node.js,我也可以为此发布解决方案,只需告诉我。

(顺便说一句,如果你把X = 10在第二个文件,并从第一引用它会引发错误)

有避免这种方式,诸如使用的document.ready函数或包裹的东西在函数中,然后在最后调用它们。你需要确保函数和变量在被使用之前被创建(这是初学者常犯的错误,并且被混淆)

+0

对不起,新的JavaScript,所以我应该有我确实利用提到node.js,而不是编写在网站上使用的代码。 – Mattaus

+0

[我发现这个](https://stackoverflow.com/questions/17120117/sharing-modifying-a-variable-between-multiple-files-node-js)根据您的回应细化我的搜索条件。我会给我看到一个尝试。幸运的是,我的两个脚本不会尝试更改任何脚本数据 - 一个创建,另一个读取。只有一种方法:) – Mattaus

+0

哦,没问题。这个变化很大。让我知道你是否需要更多帮助。祝你好运! –

0

如果JSON数据小于5 MB,那么你可以使用localStorage将输出保存在浏览器中。

在第一js文件:

function fOne(){ 
    var jsonStr = ''; //insert some json data here 
    localStorage.setItem("myJson", JSON.stringify(jsonStr)); //save data 
} 

在你的第二个js文件:

function fTwo(){ 
    if (localStorage.getItem("myJson") !== null) { 
     var passedJson = localStorage.getItem("myJson"); //get saved data anytime 
    } 
} 
+0

我的歉意@TusharTyagi,我应该提到我正在使用node.js,而不是浏览器的编程工作。我相信上述内容仅适用于浏览器环境? – Mattaus

+0

好吧,那么,由于您的问题中使用的标签,更多的脂肪酶可能​​会感到困惑,所以你必须编辑它asap :) –