JavaScript:当需要在回调中进行回调(末日金字塔)时,谁能举一个例子?

问题描述 投票:0回答:1

下面的代码在回调内部进行回调。为什么需要这个?为什么不能单独打3个电话?注意loadScript只是要创建一个样式标签,并动态添加传递给src属性的脚本。

loadScript('/ my / script.js',function(script){

loadScript('/ my / script2.js',function(script){

loadScript('/ my / script3.js',function(script){

  // ...continue after all scripts are loaded
});

})

});

javascript jquery callback dynamic-script-loading
1个回答
0
投票

在这种情况下,您正在使用回调来确保每个脚本在下一个脚本之前完成加载。它们被链接在一起,因此在继续代码之前必须先加载所有三个脚本。这很重要的原因是脚本在加载时会阻止其余的渲染/执行。如果要对此进行漂亮处理,还可以使用async / promise语法在每一行中保持加载:

const loader = new Loader({
    src: 'cdn.segment.com/analytics.js',
    global: 'Segment',
})

// scriptToLoad will now be a reference to window.Segment
const scriptToLoad = await loader.load()

// https://timber.io/snippets/asynchronously-load-a-script-in-the-browser-with-javascript/

https://www.html5rocks.com/en/tutorials/speed/script-loading/

https://www.sitepoint.com/non-blocking-async-defer/

© www.soinside.com 2019 - 2024. All rights reserved.