当我们希望加快一个网站的初始加载速度时,我们将所有的javascript放在一个合并的文件中,现在相当大--大约90 of。所有的分析工具都在说“您应该切换到异步,以避免JavaScript块呈现您的网页”。
这就是我们今天在结束身体标记之前得到的
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="/js/script.js"></script>
我们的脚本依赖于jQuery。所以,我的问题是,是否最好有一个接近200 go的脚本,即jQuery与我们的脚本连接,这样我们就可以知道jQuery在我们自己的脚本之前加载,并且让它异步加载,还是有其他方法可以这样做,而不涉及太多的第三方解决方案,比如headjs、reactjs等等。
输入代码,这是
<script src="/js/combined.js" async></script>
比这更好
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="/js/script.js" async></script>
如果我们保持jQuery同步,并将脚本异步化,这对我们有帮助吗?或者,在我们无法确定jQuery在我们之前加载的意义上,这是否很危险?
或者,作为一个非解决方案,我们只是不关心这一点,而专注于其他方面
任何见解都将不胜感激。
发布于 2015-07-10 04:14:50
更好的方法是使用脚本加载器,例如RequireJS或Head.JS。
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/headjs/1.0.3/head.min.js"></script>
<script type="text/javascript">
head.js(
"//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js",
"/js/script.js",
function() {
startMyCode();
}
);
</script>
RequireJS的功能更强大一些,因为它不按顺序执行脚本,而是按依赖关系执行,但要求您将代码组织在模块中(相对于Head.JS,您可以不用对代码进行任何修改)。
编辑:实际上,考虑到Head.JS
似乎不再被维护,也许最好使用$script.js。为了澄清--这些事情是为您的代码管理异步加载,然后确保在加载所有位时(或者像Head.JS那样按顺序执行,或者以某种基于依赖关系图的方式)执行它。
https://stackoverflow.com/questions/31332227
复制相似问题