【发布时间】:2020-01-31 11:04:18
【问题描述】:
我正在尝试优化 OpenCart 网站的速度。不幸的是,这些扩展都没有任何好处,所以我决定手动完成所有操作。
例如,我正在优化 css 文件:
<link href="catalog/view/javascript/jquery/magnific/magnific-popup.css" type="text/css" rel="stylesheet" media="nope!" onload="this.media='all'">
这对我来说非常好用,因为我构建了一个预加载器,它等待所有 css 被加载然后显示我的页面。在这种情况下,PageSpeed 很高兴,我也很高兴。
问题是预加载器基本上可以工作:
<script>
document.onreadystatechange = function() {
if (document.readyState !== "complete") {
document.querySelector(
"body").style.visibility = "hidden";
document.querySelector(
"#loader").style.visibility = "visible";
} else {
document.querySelector(
"#loader").style.display = "none";
document.querySelector(
"body").style.visibility = "visible";
}
};
</script>
这样每次我打开页面时它都会显示加载器,并且我只想在第一次显示它时 / 由于 css / 的阻塞,页面仍在呈现并显示纯 html。
所以我想知道是否有办法做到这一点..
提前致谢!
【问题讨论】:
-
@aravind 抱歉,这并没有真正回答我的问题,这只是告诉 css 是否已加载/每次刷新/如果文件被缓存,我需要一些可以帮助我实现预加载器的东西/不是。
-
即使你的 css 被缓存了,它仍然需要被加载,你有没有试过测量加载器在有和没有缓存文件的情况下“开启”多长时间?
-
@FMashiro 这是一个非常好的主意,但是当我试图像这样获得执行时间prnt.sc/qvlzb8 时,它几乎得到了相同的结果,当我将它放在函数中时根本没有测量它..
-
您确定在加载之间已正确清除缓存吗?因为看起来您的 CSS 没有正确缓存,或者您在没有清除缓存的情况下进行“之前/之后”测量(因此两个测量都将使用缓存)
标签: javascript performance opencart pagespeed