]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Load Twitter widget async, prevent SPOF
authorRoss Allen <rossgit@gmail.com>
Tue, 5 Nov 2013 08:17:05 +0000 (22:17 -1000)
committerRoss Allen <rossgit@gmail.com>
Tue, 5 Nov 2013 08:17:05 +0000 (22:17 -1000)
Twitter's widget library[1] provides an async snippet to inject the
script tag later. Since widgets.js came before the local JS, if
twitter.com took long to respond it would prevent subsequent
synchronous script tags.

[1] https://dev.twitter.com/docs/tfw-javascript

_includes/footer.html

index 6deb13192bab76d6bae9da0e5fb0892ba45493e8..8927c9048b00a4e4af98176fe1c1610063db33a6 100644 (file)
@@ -4,7 +4,6 @@
 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
 <script src="{{ page.base_url }}dist/js/bootstrap.js"></script>
 
-<script src="http://platform.twitter.com/widgets.js"></script>
 <script src="{{ page.base_url }}docs-assets/js/holder.js"></script>
 
 <script src="{{ page.base_url }}docs-assets/js/application.js"></script>
 <script src="{{ page.base_url }}docs-assets/js/customizer.js"></script>
 {% endif %}
 
+{% comment %}
+  Inject Twitter widgets asynchronously. Snippet snipped from Twitter's
+  JS interface site: https://dev.twitter.com/docs/tfw-javascript
+{% endcomment %}
+<script>
+  window.twttr = (function (d,s,id) {
+    var t, js, fjs = d.getElementsByTagName(s)[0];
+    if (d.getElementById(id)) return; js=d.createElement(s); js.id=id;
+    js.src="https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
+    return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
+  }(document, "script", "twitter-wjs"));
+</script>
+
 <!-- Analytics
 ================================================== -->
 <script>