gpt4 book ai didi

javascript - 调用所需函数时是否会触发惰性 javascript 下载/解释?

转载 作者:行者123 更新时间:2023-11-30 05:52:01 25 4
gpt4 key购买 nike

假设我有两个独立的 JavaScript block ,脚本 A 和脚本 B。在脚本 B 中,我从脚本 A 调用函数 a,但脚本 A 尚未下载和/或解释。库应该解决依赖关系(使用表或其他东西),触发 A 的解释,然后执行所需的函数调用。

这有时可能会有用(我知道通常不会)。

我已阅读 this article并了解 Lazy Ready plugin ,但它们似乎没有执行我想要的依赖项解析。

最佳答案

您可以通过包含包含下载脚本逻辑的虚拟函数来做到这一点:

function funcA(parameter) {
var source = loadSynchronousAjax( 'url for script A' ); // whatever function you usually use to load data synchronously
eval( source ); // this will replace the funcA symbol with the proper implementation
return funcA( parameter );
}

您必须自己定义依赖项,但解决方案应该自行解决。如果 funcA(真实的)使用另一个虚拟函数,它将以相同的方式加载。

提取公共(public)代码:

function lazyFunction( obj, url, name ) {
obj[name] = function () {
var source = loadSynchronousAjax( url );
eval( source );
return obj[name].apply( obj, arguments );
};
}

lazyFunction( window, 'url for script A', 'funcA' );
lazyFunction( window, 'url for script B', 'funcB' );
lazyFunction( window, 'url for script B', 'funcC' );

这将定义两个具有延迟加载的三个函数的脚本。

我应该补充一点,我认为同步加载脚本不是一个好主意,但如果惰性函数应该看起来像普通函数,那就没有太多选择了。

如果您可以将惰性函数的签名更改为异步调用,这实际上可能是一个有值(value)的模式。

关于javascript - 调用所需函数时是否会触发惰性 javascript 下载/解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14138362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com