延迟加载多个 JS 文件

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

我延迟加载多个脚本文件。我想在所有文件按顺序加载时调用 allJsLoaded() 方法。既然脚本文件是同步加载的,那么监听最后一个脚本标签的onload事件就足够了吗?或者有没有更好的方法可以达到同样的效果?

//Below are the script tags I create dynamically and add it to headtag
<script type="text/javascript" src="file1.js"></script> 
<script type="text/javascript" src="file2.js"></script> 
<script type="text/javascript" src="file3.js" onload="allJsLoaded()"></script> 
javascript html lazy-loading
1个回答
0
投票

如果脚本文件是同步加载的(即按顺序一个接一个),那么监听最后一个脚本标签的 onload 事件应该足以确保在调用

allJsLoaded()
之前所有脚本都已加载。

此方法假设脚本加载时没有任何错误,并且它们不操纵加载顺序或执行流程。如果有可能不满足这些条件,您应该考虑

additional error handling

请记住,在某些情况下,特别是如果脚本是从不同的域加载的或具有其他复杂的依赖关系,您可能会遇到

onload event due to cross-origin restrictions
的问题。在这种情况下,您可能需要使用更高级的脚本加载技术或模块加载器,例如
RequireJS

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