• Resolved aunpric

    (@aunpric)


    Hi Im using This Script https://cdn.plyr.io/2.0.18/plyr.css to load a player and When I did and Run a test page insight show it as render blocking although i search on the net and find some way to make it non blocking

    I Using this code to make it non render blocking

    here

    <link rel="preload" href="https://cdn.plyr.io/2.0.18/plyr.css" as="style" onload="this.rel='stylesheet'">
    <noscript><link rel="stylesheet" href="https://cdn.plyr.io/2.0.18/plyr.css"></noscript>

    But Still This doesnt help can You tell me how can i make it non render blocking

    The page I need help with: [log in to see the link]

Viewing 7 replies - 1 through 7 (of 7 total)
  • Plugin Author Optimizing Matters

    (@optimizingmatters)

    Evening @aunpric;
    you’ll probably need filamentgroup’s loadcss to ensure this works for browsers that don’t support rel=preload.

    hope this helps,
    frank

    Thread Starter aunpric

    (@aunpric)

    Evening

    <link rel="preload" href="https://cdn.plyr.io/2.0.18/plyr.css" as="style" onload="this.rel='stylesheet'">
    <noscript><link rel="stylesheet" href="https://cdn.plyr.io/2.0.18/plyr.css"></noscript>
    <script>
    /*! loadCSS rel=preload polyfill. [c]2017 Filament Group, Inc. MIT License */
    (function(){ ... }());
    </script>

    This is right now using after you said about filamengroup load css when i put it every single page goen white nothing else am i Doing something wrong

    Thanks for the reply

    Thread Starter aunpric

    (@aunpric)

    in there demo they added this whole script did i have to add it too

    <script>
    		/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
    /* This file is meant as a standalone workflow for
    - testing support for link[rel=preload]
    - enabling async CSS loading in browsers that do not support rel=preload
    - applying rel preload css once loaded, whether supported or not.
    */
    (function( w ){
    	"use strict";
    	// rel=preload support test
    	if( !w.loadCSS ){
    		w.loadCSS = function(){};
    	}
    	// define on the loadCSS obj
    	var rp = loadCSS.relpreload = {};
    	// rel=preload feature support test
    	// runs once and returns a function for compat purposes
    	rp.support = (function(){
    		var ret;
    		try {
    			ret = w.document.createElement( "link" ).relList.supports( "preload" );
    		} catch (e) {
    			ret = false;
    		}
    		return function(){
    			return ret;
    		};
    	})();
    
    	// if preload isn't supported, get an asynchronous load by using a non-matching media attribute
    	// then change that media back to its intended value on load
    	rp.bindMediaToggle = function( link ){
    		// remember existing media attr for ultimate state, or default to 'all'
    		var finalMedia = link.media || "all";
    
    		function enableStylesheet(){
    			link.media = finalMedia;
    		}
    
    		// bind load handlers to enable media
    		if( link.addEventListener ){
    			link.addEventListener( "load", enableStylesheet );
    		} else if( link.attachEvent ){
    			link.attachEvent( "onload", enableStylesheet );
    		}
    
    		// Set rel and non-applicable media type to start an async request
    		// note: timeout allows this to happen async to let rendering continue in IE
    		setTimeout(function(){
    			link.rel = "stylesheet";
    			link.media = "only x";
    		});
    		// also enable media after 3 seconds,
    		// which will catch very old browsers (android 2.x, old firefox) that don't support onload on link
    		setTimeout( enableStylesheet, 3000 );
    	};
    
    	// loop through link elements in DOM
    	rp.poly = function(){
    		// double check this to prevent external calls from running
    		if( rp.support() ){
    			return;
    		}
    		var links = w.document.getElementsByTagName( "link" );
    		for( var i = 0; i < links.length; i++ ){
    			var link = links[ i ];
    			// qualify links to those with rel=preload and as=style attrs
    			if( link.rel === "preload" && link.getAttribute( "as" ) === "style" && !link.getAttribute( "data-loadcss" ) ){
    				// prevent rerunning on link
    				link.setAttribute( "data-loadcss", true );
    				// bind listeners to toggle media back
    				rp.bindMediaToggle( link );
    			}
    		}
    	};
    
    	// if unsupported, run the polyfill
    	if( !rp.support() ){
    		// run once at least
    		rp.poly();
    
    		// rerun poly on an interval until onload
    		var run = w.setInterval( rp.poly, 500 );
    		if( w.addEventListener ){
    			w.addEventListener( "load", function(){
    				rp.poly();
    				w.clearInterval( run );
    			} );
    		} else if( w.attachEvent ){
    			w.attachEvent( "onload", function(){
    				rp.poly();
    				w.clearInterval( run );
    			} );
    		}
    	}
    
    	// commonjs
    	if( typeof exports !== "undefined" ){
    		exports.loadCSS = loadCSS;
    	}
    	else {
    		w.loadCSS = loadCSS;
    	}
    }( typeof global !== "undefined" ? global : this ) );
    
    		</script>

    Sorry Im beginner at these things

    Plugin Author Optimizing Matters

    (@optimizingmatters)

    if your page goes white that’s probably a PHP-errer, have a look at this page for info on how to best add JS to your site.

    Thread Starter aunpric

    (@aunpric)

    Well I check My cpanel for error it didnt show any

    when i use only this

    <link rel="preload" href="https://cdn.plyr.io/2.0.18/plyr.css" as="style" onload="this.rel='stylesheet'">
    <noscript><link rel="stylesheet" href="https://cdn.plyr.io/2.0.18/plyr.css"></noscript>

    I got no problem but when i add

    <script>
    /*! loadCSS rel=preload polyfill. [c]2017 Filament Group, Inc. MIT License */
    (function(){ ... }());
    </script>

    This code it Show only a white

    Plugin Author Optimizing Matters

    (@optimizingmatters)

    so where/ how do you add that JS?

    Thread Starter aunpric

    (@aunpric)

    Thanks For your time and reply

    I figure it out it is because of lazy load Plugin

    Long story to tell although Thankss

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘Render Blocking css’ is closed to new replies.