Je suis en création d'un simple et rapide site web, et je suis en train d'optimiser le site autant que je le peux. J'ai remarqué que des boutons de réseaux sociaux sont de ralentir le site web par beaucoup. Je suis, y compris le Facebook Comme le Bouton, Bouton Twitter et Google+ Bouton. Alors, j'ai couru quelques tests:
Site sans des boutons de réseaux sociaux, le temps de chargement de 0,24 s:
Site web avec des boutons de réseaux sociaux, le temps de chargement de 1,38 s:
Voici mon code:
<div id="social">
<!-- FB -->
<div id="fb-root"></div>
<script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_EN/all.js#xfbml=1&status=0"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-like" data-href="http://facebook.com/textsearcher" data-width="150" data-layout="button_count" data-show-faces="false" data-send="false"></div>
<!-- TWITTER -->
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.textsearcher.com/" data-hashtags="TextSearcher">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<!-- G+ -->
<div class="g-plusone" data-size="medium" data-href="http://www.textsearcher.com/"></div>
<script type="text/javascript"> (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })(); </script>
</div>
J'ai donc essayé quelques choses à charger ces boutons sociaux sans eux, le ralentissement de chargement d'un site web de temps.
Boutons de chargement après une seconde de retard via JavaScript:
setInterval(function(){
$("#social").html("<!-- FB --><div id="fb-root"></div>.....");
},1000);
Cela ne vous aide pas, les boutons ne se charge pas correctement et qu'ils étaient sur écoute.
Boutons de chargement après le document est prêt:
$(document).ready(function() {
$("#social").html("<!-- FB --><div id="fb-root"></div>.....");
});
Cela n'a pas aider non plus. Boutons de chargement très bien, mais site web de temps de chargement était encore >1.00 secondes.
Je suis à cours d'idées. De toute façon, pour les charger sans ralentir les performances de site web?
PS. Utilisé temps de chargement de Page plugin pour chrome dans ces tests
SOLUTION:
Grâce à CodeMonkey pour sa réponse, j'ai finalement résolu ce problème en chargeant sociale des boutons après l' ensemble de la page est chargée. J'ai déplacé le code JavaScript nécessaire (pour des boutons de réseaux sociaux) dans un fichier séparé pour rendre mon code HTML/balisage peu plus propre.
JS (dans un autre fichier social.js):
/* Facebook*/
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_EN/all.js#xfbml=1&status=0"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));
/* Twitter */
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');
/* G+ */
(function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
HTML:
<script>
$(window).bind("load", function() {
$.getScript('js/social.js', function() {});
});
</script>
<!-- FB -->
<div id="fb-root"></div>
<div class="fb-like" data-href="http://facebook.com/textsearcher" data-width="150" data-layout="button_count" data-show-faces="false" data-send="false"></div>
<!-- TWITTER -->
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.textsearcher.com/" data-hashtags="TextSearcher">Tweet</a>
<!-- G+ -->
<div class="g-plusone" data-size="medium" data-href="http://www.textsearcher.com/"></div>
Donc, après cette charge timings étaient de nouveau normal, de 0,24 s: