在这样的一个请求 - 响应周期中加载多个JavaScript

时间:2014-09-13 13:02:37

标签: javascript html5

我们通常将JavaScript文件加载为:

<script type="text/javascript" src="js/a.js"></script>
<script type="text/javascript" src="js/b.js"></script>
<script type="text/javascript" src="js/c.js"></script>
<script type="text/javascript" src="js/d.js"></script>

这将进行4次请求 - 响应调用。有没有办法“除了将这些文件压缩成一个”,以减少GET调用的数量?如下所示:

<script type="text/javascript" src="js/a.js, js/b.js, js/c.js, js/d.js"></script>

几个月前我在Hacker News(news.ycombinator.com)上看到了这样一个例子,但现在似乎无法找到它。

1 个答案:

答案 0 :(得分:0)

如果目的是减少GET请求,那么这个问题与HTTP有关,而不是HTML。 HTML标准没有定义如何请求这些文件,而是仅定义它们的处理方式。这意味着,更改script标记定义不是解决问题的好方法。

实用的方法是在服务器端组合js文件。但是也有改进HTTP或替换它的努力。 例如,Google正在Chrome上试用的 SPDY 协议具有仅使用一个连接传输资源的功能。 (和HTTP / 2,基于SPDY,如wikipedia所述)我相信还有其他项目。

P.S。关于你提到的hackernews例子,我还没有看过,但我可以想象它是如何工作的。它可能是客户端脚本和服务器端库。该脚本分析此类脚本标记并发送特定语法的请求。 lib识别并捕获此请求并反馈动态组合的源。这只是一个自动服务器端组合。