[英]A small delay on my page when loading CSS
我在加载我的页面时遇到了一些“问题”,在加载 css 之前可能需要一秒钟,所以起初我看到“未设置样式”页面,过了一小秒钟就正常了。
我的主机是 000webhost,但也许这并不重要。
有小费吗?
我建议您阅读 Google Developer Resource Prioritization 中的这篇文章 - 让浏览器帮助您
简而言之
<link rel="preload" as="script" href="script-file.js">
用于预加载 javascript
<link rel="preload" as="style" href="styles-file.css">
用于预加载 CSS
另一个建议是尝试优化您的网站并仅在需要时使用资源。
也与您的托管服务无关。
我的首选解决方案是将 javascript 移动到页面底部并延迟加载 CSS,如下所示:
将内容包装在没有显示的 div 中,并将基本样式内联放在头部。 然后在您的 CSS 文件中有.wrap{display:block;}
。
然后在底部推迟样式表的加载,直到它被加载。
这里发生的是默认隐藏页面内容(使用 .wrap{display:none} . Then when the CSS file is fully loaded, the
.wrap{display:block}` 覆盖显示无并显示页面一次全部。
<html>
<head><style>.wrap{display:none;}</style></head>
<body>
<div class="wrap">
website content
</div>
<noscript id="deferred-styles">
<link rel="stylesheet" type="text/css" href="style.css" />
</noscript>
<script>
var loadDeferredStyles = function() {
var addStylesNode = document.getElementById("deferred-styles");
var replacement = document.createElement("div");
replacement.innerHTML = addStylesNode.textContent;
document.body.appendChild(replacement)
addStylesNode.parentElement.removeChild(addStylesNode);
};
var raf = requestAnimationFrame || mozRequestAnimationFrame ||
webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) raf(function() { window.setTimeout(loadDeferredStyles, 0); });
else window.addEventListener('load', loadDeferredStyles);
</script>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.