我对 JavaScript 还比较陌生。我想做的一件事是能够拥有某些环境变量,特别是主机名。在开发中,它将是 localhost。在生产中,情况会完全不同。
我已经了解了如何使用 JSON 文件来加载值,如下所示:
值.json
{
"myVal": "production"
}
JQuery $.getJSON()(创建具有不可变字段的对象的 IIFE 函数的一部分)
$.getJSON("value.json", function(data){
myVal = data.myVal; //Not globally assigned, assigned to field in enclosing function
console.log(data.myVal);
});
问题在于 getJSON() 是异步的。虽然加载该数据的时间很短,但它确实创建了一种情况,即用户可能在完成加载主机名值之前单击页面上的链接。
我只是想知道处理这个问题的最佳方法是什么?如何确保该值始终可用?
到目前为止,我的一个想法是使用 session token ,因为它已经是请求/响应机制的一部分,并且始终可用。由于它将是一个签名 token ,因此它的值将是安全的,因此有人将无法恶意更改这些值。
但这听起来有点像一个黑客解决方案。所以我想知道是否有更好、更优雅的方法来实现它?
最佳答案
我经常使用的一种方法是从后端导入变量。
例如,如果您使用 PHP,您可以只是 echo
出变量。
您可以放置以下 <script>
在你的<head>
和 CONFIG
将随处可见。
<script>
var CONFIG = {
host: "<?php echo $host; ?>",
otherConfig: "<?php echo $otherConfig; ?>"
};
</script>
关于JavaScript:在页面初始化时加载应用程序环境变量的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39688135/