在DOM加载之前insertScript


起因

由于工作原因需要联调碧桂园的SDK 大概是以下代码,起初我是放在head中的,因为最初这样调试,包括线上环境都是OK的,可以获取到SDK的内容,换句话说js节点是可以插入到root内的,自从换了一套webpack4的构建、包括加快DNS速度、包括asyncScript标签之后,发现这个插入语句不起作用了,这个事情很神奇。

    

昨天下午发现的,直到今天早上我调了一下这个问题,总结一下。

这段语句不能写在之前,因为webpack的原因main script也会在之前插入,但是我们希望的是他在main script之前加载,但是这句话appendScript 会让浏览器异步加载script 内容,这样我们就不能保证是main script先加载还是jssdk先加载了。

解决办法

在head中另加一个script片段,把js放在DOMContentLoaded中做处理,这样的话它会在load main script之前去做load jssdk标签,并且是一个同步加载的过程

    

当然还有其他方式解决这个问题这里就不做深究。