帮忙看下这段js的用意?是关于百度自动提交链接的js

先看代码如下

<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>

这段代码的意思是不是:外部引用js文件(2选1),并且放在所有script标签前面,也就是要求这个js 最先执行,是这样吗??

阅读 2.3k
2 个回答

创建script标签,根据当前网址协议,选择设置不同的地址,然后将这个script标签插入网页第一个script标签前。但是最先执行就不一定了,看代码放的位置,可能执行这段代码之前,它前面的其他script标签已经先执行了。

这段代码并没有什么高科技,就是最正常的一种 动态脚本注入 技术。
也算是异步加载js脚本的一种方式,很多按需异步加载就是这么实现的。

关于你说的放在所有script标签前面是没问题的,但是执行顺序不能保证,因为是异步加载,需要通过请求网络下载js脚本文件,触发load事件才能执行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题