我有一个由js支持IE8的html5主题但是我的页面无法通过Google pagespeed测试。我需要推迟javascript和CSS。我的页面有以下标题:
<!--[if lte IE 8]><script src="css/ie/html5shiv.js"></script><![endif]-->
<script src="js/jquery.min.js"></script>
<script src="js/jquery.dropotron.min.js"></script>
<script src="js/jquery.scrollgress.min.js"></script>
<script src="js/skel.min.js"></script>
<script src="js/skel-layers.min.js"></script>
<script src="js/init.js"></script>
<noscript>
<link rel="stylesheet" href="css/skel.css" />
<link rel="stylesheet" href="css/style.css" />
<link rel="stylesheet" href="css/style-wide.css" />
</noscript>
<!--[if lte IE 8]><link rel="stylesheet" href="css/ie/v8.css" /><![endif]-->
</head>
我尝试使用以下代码来推迟但是我的页面显示不正确。我不太了解javascript,但我认为浏览器只渲染脚本,而不是css。
<!-- defer.js begins-->
<script type="text/javascript">
function downloadJSAtOnload() {
(function(scripts) {
var i = 0,
l = scripts.length;
for (; i<l; ++i ){
var element = document.createElement("script");
element.src = scripts[i];
document.body.appendChild(element);
}
})(['js/jquery.min.js','js/jquery.dropotron.min.js', 'js/jquery.scrollgress.min.js', 'js/skel.min.js', 'js/skel-layers.min.js', 'js/init.js']);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>
<!-- defer.js ends -->
</body>
以下是我的文件:
如何推迟javascript和css?
答案 0 :(得分:0)
尝试从标题中输出脚本标记,然后在结束标记之前添加它们,或者使用脚本标记上仅由现代浏览器使用的defer
或async
属性。 :)
答案 1 :(得分:0)
希望这个有助于js文件
<script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "js/jquery.min.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, dfalse);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>
&#13;