多个JavaScript文件,合并为一个

多个JavaScript文件,合并为一个,javascript,asp.net,Javascript,Asp.net,我正在ASP.NETMVC中开发并使用多个JavaScript文件。例如jQuery、jQuery UI、谷歌地图、我自己的JavaScript文件等 为了提高性能,我是否应该将这些合并为一个?如果是,怎么做?如果它们都将包含在您的所有页面中,那么这并没有什么区别。但是,如果其中一些只与某些页面相关,那么技术上最好将它们分开,只在相关页面上包含相关的页面 据我所知,您确实应该这样做:文件越少意味着http get越少,因此当用户首次加载页面时,他们的性能就越好。 因此,他们将节省一秒钟的时间,他

我正在ASP.NETMVC中开发并使用多个JavaScript文件。例如jQuery、jQuery UI、谷歌地图、我自己的JavaScript文件等


为了提高性能,我是否应该将这些合并为一个?如果是,怎么做?

如果它们都将包含在您的所有页面中,那么这并没有什么区别。但是,如果其中一些只与某些页面相关,那么技术上最好将它们分开,只在相关页面上包含相关的页面

据我所知,您确实应该这样做:文件越少意味着http get越少,因此当用户首次加载页面时,他们的性能就越好。 因此,他们将节省一秒钟的时间,他们将出现在您的页面的第一页。但之后,这些文件都被兑现了,那就没什么区别了

我还没有深入研究javascript引擎本身,但是一个文件中的函数在大文件或小文件中的处理方式是相同的。所以在执行上没有区别


所以,节省时间,不要改变任何事情,因为这会花费你太多的时间而得到太少的回报,特别是当你发现你想要最新版本的jquery(顺便说一句,新版本今天发布了),并且你必须重新考虑一切…

关于你是否应该,查看Shoban评论中的链接

关于如何解决的问题:

  • 雅虎

您希望将多个文件合并为一个文件的原因是为了最大限度地减少设置和删除http请求的延迟,越少越好。然而,许多较新的浏览器正在并行下载JavaScript文件(仍按顺序执行)。其结果是,下载单个1Mb文件可能比下载三个350Kb文件慢。我要做的是将文件分为三个包:

  • 外部库文件(jquery、flot、插件)
  • 内部库文件(由多个页面共享)
  • 页面特定文件(仅由该页面使用,可能由两个页面使用)
通过这种方式,我可以两全其美:启动时不会有过多的http请求,但也不是单个文件不能从并行下载中获益

同样适用于CSS,每个页面加载三个CSS包。因此,我们的页面总共下载了六个捆绑文件和主html文件。我觉得这是一个很好的妥协。你可能会发现不同的文件分组对你更合适,但我的建议是不要创建一个包,除非它是一个单页的应用程序。如果您发现自己经常将同一文件放入不同的捆绑包中,那么是时候重新考虑捆绑策略了,因为您要多次下载相同的内容


使用什么?Martijn的建议是关于钱的。根据我的经验,YUI是使用最广泛的,这是我以前和现在的工作中使用的。

将js文件连接到一个文件中时可能会出现重复,如果两个文件在不同的文件中具有相同的名称,则可能会出现变量问题。变量的作用域在不同的文件中或在一个文件中时不相同。没有文件作用域变量,它们是函数的全局或局部变量。所以塞德里克提到的问题并不存在。