Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以下哪种异步加载方法是最好的?文件编写?_Javascript_Asynchronous_Social - Fatal编程技术网

Javascript 以下哪种异步加载方法是最好的?文件编写?

Javascript 以下哪种异步加载方法是最好的?文件编写?,javascript,asynchronous,social,Javascript,Asynchronous,Social,这两种异步js加载方法之间有区别吗 <div class="g-plusone"></div> <script type="text/javascript"> (function(d, t) { var g = d.createElement(t), s = d.getElementsByTagName(t)[0]; g.async = true; g.src = 'https://apis.google.com/js/plusone.js'; s.paren

这两种异步js加载方法之间有区别吗

<div class="g-plusone"></div>
<script type="text/javascript">
(function(d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
g.async = true;
g.src = 'https://apis.google.com/js/plusone.js';
s.parentNode.insertBefore(g, s);
})(document, 'script');
</script>

<script type="text/javascript">
//<![CDATA[
(function() {
  document.write('<fb:like href="http://www.sandrophoto.com/' + location.pathname + '" send="true" width="360" show_faces="false" font=""></fb:like>');
  var s = document.createElement('SCRIPT'), s1 = document.getElementsByTagName('SCRIPT')[0];
  s.type = 'text/javascript';
  s.async = true;
  s.src = 'http://connect.facebook.net/en_US/all.js#xfbml=1';
  s1.parentNode.insertBefore(s, s1);
})();
//]]>
</script>

(功能(d,t){
var g=d.createElement(t),
s=d.getElementsByTagName(t)[0];
g、 异步=真;
g、 src='1〕https://apis.google.com/js/plusone.js';
s、 parentNode.insertBefore(g,s);
})(文件“脚本”);
//

最明显的区别在于document.write方法将代码准确地写入文档中,而另一种方法将内容放入指定的容器div中

还有一些其他的区别,以及异步加载脚本的一些其他方法


Steve Souders就这一主题写了一篇优秀的文章,我建议您阅读。

这两篇文章在加载方面在概念上很相似。它们都创建了一个新的脚本标记,并将其添加到DOM中,这样就可以异步加载,而不依赖于其他脚本标记,这些脚本标记必须按照显示的顺序加载。这些实现有一些细微的差异,但从加载的角度来看,它们在概念上是相同的


FB代码中的document.write()会导致一些与其他加载事件的序列化,并且可能会稍微降低速度(取决于具体情况)。

但我能告诉你的是,document.write()与脚本标记加载无关-它只是一个FB标记(脚本本身以后可能会使用)。你认为document.write()对脚本加载很重要吗?是的,你说得很对。本例中的写入实际上并不影响脚本的加载。您可能只需手动将标记插入页面或其他任何可以实现完全相同效果的操作。好的,根据您的建议,我决定删除document.write并直接在html中写入div。至于其余的代码,我选择了选项#1,对我来说似乎代码更少:)