Skip to content

Instantly share code, notes, and snippets.

@thedaviddias
Last active February 1, 2024 08:24
Show Gist options
  • Star 96 You must be signed in to star a gist
  • Fork 20 You must be signed in to fork a gist
  • Save thedaviddias/c24763b82b9991e53928e66a0bafc9bf to your computer and use it in GitHub Desktop.
Save thedaviddias/c24763b82b9991e53928e66a0bafc9bf to your computer and use it in GitHub Desktop.
Preload CSS and don't block the DOM with your CSS file request.
<link rel="preload" href="css/global.min.css" as="style" onload="this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="css/global.min.css"></noscript>
<script>
/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
!function(a){"use strict";var b=function(b,c,d){function j(a){if(e.body)return a();setTimeout(function(){j(a)})}function l(){f.addEventListener&&f.removeEventListener("load",l),f.media=d||"all"}var g,e=a.document,f=e.createElement("link");if(c)g=c;else{var h=(e.body||e.getElementsByTagName("head")[0]).childNodes;g=h[h.length-1]}var i=e.styleSheets;f.rel="stylesheet",f.href=b,f.media="only x",j(function(){g.parentNode.insertBefore(f,c?g:g.nextSibling)});var k=function(a){for(var b=f.href,c=i.length;c--;)if(i[c].href===b)return a();setTimeout(function(){k(a)})};return f.addEventListener&&f.addEventListener("load",l),f.onloadcssdefined=k,k(l),f};"undefined"!=typeof exports?exports.loadCSS=b:a.loadCSS=b}("undefined"!=typeof global?global:this);
/*! loadCSS rel=preload polyfill. [c]2017 Filament Group, Inc. MIT License */
!function(a){if(a.loadCSS){var b=loadCSS.relpreload={};if(b.support=function(){try{return a.document.createElement("link").relList.supports("preload")}catch(a){return!1}},b.poly=function(){for(var b=a.document.getElementsByTagName("link"),c=0;c<b.length;c++){var d=b[c];"preload"===d.rel&&"style"===d.getAttribute("as")&&(a.loadCSS(d.href,d,d.getAttribute("media")),d.rel=null)}},!b.support()){b.poly();var c=a.setInterval(b.poly,300);a.addEventListener&&a.addEventListener("load",function(){b.poly(),a.clearInterval(c)}),a.attachEvent&&a.attachEvent("onload",function(){a.clearInterval(c)})}}}(this);
</script>
@thedaviddias
Copy link
Author

Insert these lines into the head. Don't forget to change the 2 href with the path of your CSS file and your CSS will not be blocking anymore into PageSeed.

@haroldao
Copy link

Insert these lines into the head. Don't forget to change the 2 href with the path of your CSS file and your CSS will not be blocking anymore into PageSeed.

PageSpeed***

@AliAlmasi
Copy link

Is it possible to place the script tag's content into an external js file and then link it to the html?

@thedaviddias
Copy link
Author

@AliAlmasi you could but then it would require the browser to call and parse this file. The difference is not that big but it's still a call to load a file vs the JS being executed from the file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment