Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在这样一个请求-响应周期中加载多个JavaScript_Javascript_Html - Fatal编程技术网

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

在这样一个请求-响应周期中加载多个JavaScript,javascript,html,Javascript,Html,我们通常将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/javas

我们通常将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.ycombinator.com上看到了这样一个例子,但现在似乎找不到。

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

实用的方法是在服务器端组合js文件。但也有人在努力改进或取代HTTP。 例如,谷歌正在Chrome上尝试的SPDY协议具有只使用一个连接传输资源的功能。还有HTTP/2,基于SPDY,我相信还有其他类似的项目


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

不,您必须自己在服务器上组合它们。如果您使用.net,则有一种称为捆绑的功能,它可以组合并缩小文件,具体取决于您使用的服务器端语言(如果有的话),这些语言可能有类似的功能如果加载时间有问题,您可以异步加载它们。