一些 Web 应用程序(我正在考虑 Disqus 和 LiveFyre)<script>
通过 Javascript 创建标签,并通过 Javascript 指定异步加载新脚本。他们为什么要通过 Javascript 创建标签?而不是简单地做:
<script src="..." async>
一个例子:
这是 Disqus 指示网站所有者加载评论的方式:
<script type="text/javascript">
var disqus_shortname = ...
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] ||
document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
该src = ...disqus.com/embed.js
地址只是重定向到另一个 Disqus 服务器上的静态脚本,显然独立于disqus_shortname。
为什么不告诉人们使用这段代码:
<script>
var disqus_shortname = ...
</script>
<script src="http://direct-address-to-the-embed.js-script" async>
或者更简单,只有一行:
<script src="http://the_disqus_shortname.disqus.com/embed.js" async>
?
(PS 我在下面添加了一个答案。请也添加其他答案:-))