Defer CSS and JS load

Expire date
master
gnieark 7 years ago
parent a766c52bd9
commit 9646e86caf

@ -26,10 +26,10 @@
if (!defined('DC_RC_PATH')) { return; } if (!defined('DC_RC_PATH')) { return; }
$this->registerModule( $this->registerModule(
/* Name */ "YASH Fork", /* Name */ "YASH3",
/* Description*/ "Fork from Yet Another Syntax Highlighter. Modification: Juste one javascript called on public pages for yash3", /* Description*/ "Fork from Yet Another Syntax Highlighter. Modification: Juste one javascript called on public pages for yash3",
/* Author */ "Forked and modified by Gnieark, origin: Pep and contributors", /* Author */ "Forked and modified by Gnieark, origin: Pep and contributors",
/* Version */ '0.9.2', /* Version */ '0.9.3',
array( array(
/* Dependencies */ 'requires' => array(array('core','2.9')), /* Dependencies */ 'requires' => array(array('core','2.9')),
/* Permissions */ 'permissions' => 'usage,contentadmin', /* Permissions */ 'permissions' => 'usage,contentadmin',

@ -58,36 +58,40 @@ class dcYASH
$core->blog->settings->yash3->yash3_concat_version.".". $core->blog->settings->yash3->yash3_concat_version.".".
$ext; $ext;
if(file_exists($fileToSend)){ if(file_exists($fileToSend)){
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + (365*3600*24)));
echo file_get_contents($fileToSend); echo file_get_contents($fileToSend);
}else{ }else{
throw new Exception ("Page not found",404); throw new Exception ("Page not found",404);
} }
} }
public static function publicHeadContent()
{
global $core;
error_log($core->blog->url.$core->url->getBase('yash3'));
$core->blog->settings->addNamespace('yash3');
if ($core->blog->settings->yash3->yash3_active)
{
echo dcUtils::cssLoad(
$core->blog->url.$core->url->getBase('yash3')."/".
$core->blog->settings->yash3->yash3_concat_version.
".css"
);
}
}
public static function publicFooterContent() public static function publicFooterContent()
{ {
global $core; global $core;
$core->blog->settings->addNamespace('yash3'); $core->blog->settings->addNamespace('yash3');
if ($core->blog->settings->yash3->yash3_active){ if ($core->blog->settings->yash3->yash3_active){
$cssURL = $core->blog->url.$core->url->getBase('yash3')."/".
$core->blog->settings->yash3->yash3_concat_version.
".css";
echo "<noscript id=\"deferred-yash-style\">\n".
" <link rel=\"stylesheet\" type=\"text/css\" href=\"".$cssURL."\"/>\n".
"</noscript>\n".
"<script>\n".
"var loadYashDeferredStyles = function() {\n".
" var addStylesNode = document.getElementById('deferred-yash-style');\n".
" var replacement = document.createElement('div');\n".
" replacement.innerHTML = addStylesNode.textContent;\n".
" document.body.appendChild(replacement)\n".
" addStylesNode.parentElement.removeChild(addStylesNode);\n".
"};\n".
"var raf = requestAnimationFrame || mozRequestAnimationFrame ||\n".
" webkitRequestAnimationFrame || msRequestAnimationFrame;\n".
"if (raf) raf(function() { window.setTimeout(loadYashDeferredStyles, 0); });\n".
"else window.addEventListener('load', loadYashDeferredStyles);\n".
"</script>";
$jsURL = $core->blog->url.$core->url->getBase('yash3')."/". $jsURL = $core->blog->url.$core->url->getBase('yash3')."/".
$core->blog->settings->yash3->yash3_concat_version. $core->blog->settings->yash3->yash3_concat_version.
".js"; ".js";
echo '<script async src="'.$jsURL.'"></script>'; echo '<script async src="'.$jsURL.'"></script>';
} }
} }

Loading…
Cancel
Save