在Javascript文件之间共享数据

时间:2017-08-26 13:40:50

标签: javascript json

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

FWIW我试过简单地将两个脚本执行的功能组合成一个,但这引起了无数令人头疼的事情。为简单起见,我宁愿将每个脚本执行的功能分开(除了明显的数据共享要求!)。

非常感谢任何建议或正确方向的观点。

3 个答案:

答案 0 :(得分:0)

很难说没有一些代码可以引用,但可能只是一个全局变量,检查它是否为null。

var myJsonString = null;

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

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

答案 1 :(得分:0)

所以它实际上取决于你编程的环境。如果它是一个Web浏览器,所有代码实际上都在全局空间中并且按顺序运行。所以,如果您的html文件中有 ALTER TABLE my_table ADD lenght AS datediff('dd', date1, date2) 然后<script src="file1">,并且您将x = 10放在第一个文件中并在第二个文件中使用它,那么您将没有任何问题。如果你正在使用node.js,我也可以发布一个解决方案,请告诉我。

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

有一些方法可以避免这种情况,比如使用document.ready函数或在函数中包装东西,然后在最后调用它们。您需要确保在使用之前创建函数和变量(这是初学者常犯的错误并且被混淆)

答案 2 :(得分:0)

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

在第一个js文件中:

FILE AVAILABLE

在你的第二个js文件中:

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