【发布时间】:2014-08-20 20:22:24
【问题描述】:
我购买了一个主题。修改它。但是,它加载缓慢。我压缩了图像,并使用了 gzip。我在某处读到延迟 JS 解析可能会有所帮助。因此,我使用在 body 标记下方添加的以下脚本来推迟它们。现在,页面甚至不会加载。
<script type="text/javascript" charset="utf-8">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "js/filename.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>
我使用的脚本列表:
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&language=en"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
<script type="text/javascript" src="js/styleswitch.js"></script>
<script type="text/javascript" src="js/jquery.nav.js"></script>
<script type="text/javascript" src="js/jquery.sticky.js"></script>
<script type="text/javascript" src="js/jquery.parallax-1.1.3.js"></script>
<script type="text/javascript" src="js/jquery.lavalamp-1.4.js"></script>
<script type="text/javascript" src="js/jquery.scrollTo.js"></script>
<script type="text/javascript" src="js/rs-plugin/js/jquery.themepunch.plugins.min.js"></script>
<script type="text/javascript" src="js/rs-plugin/js/jquery.themepunch.revolution.min.js"></script>
<script type="text/javascript" src="js/jquery.carouFredSel-6.1.0-packed.js"></script>
<script type="text/javascript" src="js/jquery.bxslider.min.js"></script>
<script type="text/javascript" src="js/jquery.colorbox.js"></script>
<script type="text/javascript" src="js/jquery.isotope.min.js"></script>
<script type="text/javascript" src="js/fancybox/jquery.fancybox.pack.js"></script>
<script type="text/javascript" src="js/jquery.gmap.js"></script>
<script type="text/javascript" src="js/flex-slider.min.js"></script>
<script type="text/javascript" src="js/jquery.placeholder.js"></script>
<script type="text/javascript" src="js/jquery.validate.min.js"></script>
<script type="text/javascript" src="js/jquery.tweet.js"></script>
<script type="text/javascript" src="js/main.js" charset="utf-8"></script>
【问题讨论】:
-
上面的脚本只加载一个名为 filename.js 的 JavaScript 文件。
-
我认为主要问题是您正在加载大量单独的脚本。每一个都会产生一个单独的 HTTP 请求。最好将它们全部压缩到服务器上的一个大型缩小脚本中。
-
filename.js 只是一个例子。我已经为不同的脚本多次调用了该函数。
-
同样的事情发生了。
标签: javascript jquery css performance seo