两种类型的JavaScript嵌入代码之间的差异?

两种类型的JavaScript嵌入代码之间的差异?,javascript,embedding,Javascript,Embedding,这是我的第一个问题,我希望我做得对。到目前为止找不到任何解决方案,已经询问了我的一些编码朋友,还没有足够的答案。下面是: 我正在优化我的side项目SaaS,这取决于用户将JavaScript嵌入代码复制/粘贴到他们的网站中。就像谷歌分析或推特要求你做的那样 在研究其他人是如何做到这一点的时候,我总是看到以下两种方法中的一种,我真的很想知道它们之间有什么区别 编辑以澄清:两个加载的脚本都位于外部服务器上 方法1:像这样的“标准嵌入脚本”: <blockquote id="container

这是我的第一个问题,我希望我做得对。到目前为止找不到任何解决方案,已经询问了我的一些编码朋友,还没有足够的答案。下面是:

我正在优化我的side项目SaaS,这取决于用户将JavaScript嵌入代码复制/粘贴到他们的网站中。就像谷歌分析或推特要求你做的那样

在研究其他人是如何做到这一点的时候,我总是看到以下两种方法中的一种,我真的很想知道它们之间有什么区别

编辑以澄清:两个加载的脚本都位于外部服务器上

方法1:像这样的“标准嵌入脚本”:

<blockquote id="container">Hello!</blockquote>
<script src="//some.saas.tld/widget.js"></script>
你好!
这就是Twitter使用的,它似乎只是加载脚本,然后修改
元素

方法2:像这样的“黑客分离嵌入脚本”:

<script> 
  var a = document.createElement('script'); 
  a.src = '//some.saas.tld/widget.js'; 
  parentNode.insertBefore(a); 
</script>

var a=document.createElement('script');
a、 src='//some.saas.tld/widget.js';
parentNode.insertBefore(a);
(这只是一个非常基本的例子,用来说明我的意思是什么样的嵌入——它不起作用,而blockquote不在其中,因为这不是重点)。 例如,谷歌分析就是这样做的

问题是:为什么有些服务使用第一种方法,而有些服务使用第二种方法?在我看来,它似乎在创造同样的结果。赞成/反对意见是什么?

我这样问是因为一旦用户在其网站代码中使用嵌入代码,就很难让用户更改嵌入代码。因此,从一开始就做好这件事很重要


谢谢

第一个加载调用基本上是一个同步调用。如果此操作未完成,则不允许加载或执行下一个脚本

但是,第二个手动脚本加载是异步的。它将允许执行和加载其他脚本,即使脚本未完全加载

有一篇很好的文章详细解释了这种行为-签出链接-

对不起,我认为这不是一个正确的答案。在这两种情况下,加载类型都可以这样添加:方法1:
方法2:
a.async=true@Teesche-Ashwin是对的。即