好的,愚蠢的问题,我不认为这是可能的,但是,我的.aspx页面顶部有这个标记......
<%--Third Party Libraries, Plugins, Extensions --%>
<script src="Libraries/Raphael/Raphael.js" type="text/javascript"></script>
<script src="AutoComplete/jquery.autocomplete.js" type="text/javascript"></script>
<script src="Libraries/jQuery/1.4.2/jquery.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.core.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.widget.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.mouse.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.draggable.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.droppable.js" type="text/javascript"></script>
如果我可以用这个替换它,那会不会很好......
<%--Third Party Libraries, Plugins, Extensions --%>
<script src="Libraries/Raphael/Raphael.js" type="text/javascript"></script>
<script src="AutoComplete/jquery.autocomplete.js" type="text/javascript"></script>
<script src="Libraries/jQuery/1.4.2/jquery.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.*.js" type="text/javascript"></script>
即使用*
作为通配符。
显然,因为这是JS,我可以将所有这些脚本放入一个大脚本并加载,但我真的不喜欢这样做。
其他人有整理大量脚本参考的技巧吗?或者我们只是忍受它?
答案 0 :(得分:6)
据我所知,这是不可能的,因为浏览器需要准确知道要请求的文件。
浏览器基本上必须使用希望获得幸运的请求来强制您的服务器。
我建议使用Google的闭包编译器将所有类似的(如果不是全部)javascript文件合并到一个文件中。它会略大,但会减少http请求。
通过一些分析,您可以找到最常用的文件和速度之间的平衡。
更新(来自评论)
我一般不愿意提供添加新的javascript库来解决太多javascript库的问题:)此外,这似乎是更直接的解决方案。目前我们使用Google封闭API来压缩和合并我们所有的javascript和CSS,并使用ANT构建时间。有魅力。这也可以在某种程度上直接使用apache2虚拟主机/ htaccess(请参阅html5boilerplate.com)获取示例和限制
答案 1 :(得分:2)
不,不是你想的那样。如果您使用JavaScript加载器(例如RequireJS或LabJS),可以执行类似的操作,因为您可以将每个文件压缩成一个数组并循环遍历它们,或者,如果你有野心勃勃在前后端做一些协议来支持这个。
尽管如此,不建议这样做,因为它不易维护。如果您将文件合并到一个文件中的问题是有效的,那么JS minifiers(例如UglifyJS或Closure Compiler)可以解决您的问题。
答案 2 :(得分:2)
实际上,正如其他人可能提到的那样,您可以在其中添加自己的脚本文件,并执行类似添加数组路径的操作,循环调用每个项目getScript。
$.getScript('ajax/test.js', function() {
alert('Load was performed.');
});
答案 3 :(得分:1)
即使用*作为通配符。
没有。好吧,除非您想要将服务器配置为通过解析它的脚本传递包含*
字符的URL,并将所有JS捆绑在一起。
显然,因为这是JS,我可以将所有这些脚本放入一个大脚本并加载,但我真的不喜欢这样做。
这是一个很好的解决方案。通常,您希望将此作为站点构建脚本的一部分,并同时调用minifier。
答案 4 :(得分:0)
我会省略type="text/javascript"
The "type" attribute is required in HTML 4, but optional in HTML5.
但我仍然认为合并src是不可能的(从HTML5和CSS3开始)
答案 5 :(得分:-1)
您可以将所有jquery.ui。*文件的内容复制到一个文件中。作为额外的奖励,您的页面加载速度会稍快一些。