我可以创建一个依赖于异步调用的javascript getter吗?

时间:2015-03-13 14:39:46

标签: javascript

我有很多其他人的代码,对不起,由于社交原因无法重构。目前,服务器为此代码生成一个变量,并通过将其填充到脚本块中来将其与页面一起提供。不幸的是,出于性能原因,我现在希望延迟创建此变量,直到加载页面为止,如果我可以完全跳过创建变量,那就更好了。

所以这是古老的“我怎么阻止?” javascript的问题,但由于我无法重构代码,我不能只是用一个promise来替换变量的每个实例。

考虑到有关阻止Javascript的其他问题如何得到解答,我不相信找到一种方法来制作一个getter阻止,直到ajax调用完成才是正确的答案。我对所有建议持开放态度,但我希望这是一个具体的问题。

谢谢。

编辑:示例。这是我无法触摸的代码,也是,我无法触摸它:

if (globalObject.someVariable) {
  doStuff();
} else {
  doOtherStuff();
}

以下是服务器在页面中的内容:

<script type='text/javascript'>
jQuery.extend(globalObject, {
  "someVariable" : true;
}
</script>

我可以触摸。我可以做任何我想要的变量。该示例只显示true或false,但生成true或false是我20%的页面加载时间的隐喻。需要显示变量的页面的所有部分已经正常失败,因此告诉他们“等待此变量完成加载”并不是一个问题我只是不知道如何,因为我无法触及部分最适合改变它的代码。

1 个答案:

答案 0 :(得分:0)

加载JSON文件ondocumentready,或者在需要时加载。