RequireJS - 看不到页面内部的变量

RequireJS - not seeing variables from inside the page

我正在尝试弄清楚为什么我的新网站总是出现这些错误:

<script data-main="/2018/v5/js/app" src="/2018/v5/js/lib/require.js" async="true"></script>
<title>Title</title>

<script>window.VARS = {
 thisPage: "home_new",
 temp_set: "luna"
 };
</script>

然而,在一些(有些,我的意思是根本不多)中,我得到一个错误:

TypeError: window.VARS is undefined

我认为问题出在正文中设置了 window.VARS(我们用它来传输与页面相关的参数)。简单地将它移动到 DOM 会有帮助吗?即:

<title>Title</title>

<script>window.VARS = {
 thisPage: "home_new",
 temp_set: "luna"
 };
</script>
<script data-main="/2018/v5/js/app" src="/2018/v5/js/lib/require.js" async="true"></script>

很难测试,因为我根本无法重现这个问题 - 但我在 Errorception.com(我们用于跟踪外部错误的系统)中看到了错误,所以我'意识到这是一个问题。如果可能的话,我只想修复它。

它应该可以解决您的问题,但在任何情况下都应该像这样防止这种竞争情况:

 window.VARS = window.VARS || {};
 window.VARS.thisPage= "home_new";
 window.VARS.temp_set= "luna"

每次尝试设置属性时都遵循相同的模式。

我刚刚意识到的另一种更简单的方法是defer您的脚本执行直到页面加载完毕:

 <script data-main="/2018/v5/js/app" src="/2018/v5/js/lib/require.js" async="true" defer></script>