我有很多其他人的代码,对不起,由于社交原因无法重构。目前,服务器为此代码生成一个变量,并通过将其填充到脚本块中来将其与页面一起提供。不幸的是,出于性能原因,我现在希望延迟创建此变量,直到加载页面为止,如果我可以完全跳过创建变量,那就更好了。
所以这是古老的“我怎么阻止?” 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%的页面加载时间的隐喻。需要显示变量的页面的所有部分已经正常失败,因此告诉他们“等待此变量完成加载”并不是一个问题我只是不知道如何,因为我无法触及部分最适合改变它的代码。
答案 0 :(得分:0)
加载JSON文件ondocumentready
,或者在需要时加载。