Jquery 就性能而言,什么更好?

Jquery 就性能而言,什么更好?,jquery,performance,Jquery,Performance,什么更好 你有20个javascript文件。10在所有页面中共享。所以它们会出现在母版页中。那么其他10个呢?假设一个页面使用4/10,另一个页面使用4/10,另一个页面使用2/10 会吗 a) 最好将它们合并到一个文件中(当然是动态的),这样只会发出一个http请求 或 b) 如果母版页中合并了10个页面,那么所有其他页面都将合并在一起 所以在我的一些页面中,我会看到4或5个java脚本请求 一个来自师父 一个用于来自google CDN的jquery 一个是来自谷歌CDN的jquery用户

什么更好

你有20个javascript文件。10在所有页面中共享。所以它们会出现在母版页中。那么其他10个呢?假设一个页面使用4/10,另一个页面使用4/10,另一个页面使用2/10

会吗 a) 最好将它们合并到一个文件中(当然是动态的),这样只会发出一个http请求

b) 如果母版页中合并了10个页面,那么所有其他页面都将合并在一起

所以在我的一些页面中,我会看到4或5个java脚本请求

  • 一个来自师父
  • 一个用于来自google CDN的jquery
  • 一个是来自谷歌CDN的jquery用户界面
  • 一个用于来自MS CDN的jquery验证
  • 那一页什么都可以
  • 我的大多数脚本已经使用jquerylive,因为我使用jqueryajax选项卡,并且必须同时加载每个选项卡的所有脚本


    如果不是每次您转到另一个选项卡时,它都会下载一组新的javascript,以便开始执行绑定事件,例如单击X时间,其中X是用户加载同一选项卡的次数。

    根据您使用的语言/服务器,有许多工具可以动态组合所需的javascript文件在一个页面上转换为仅针对该页面的单个请求。根据您对Microsoft CDN的引用,听起来您正在使用ASP.NET。这将把对本地JS文件的请求合并为一个请求。如果是我,我会做的是加载:

  • JQuery&来自Google的jqueryui
  • 来自MS CDN的JQuery验证
  • 您的本地JS文件(使用上述工具)合并到一个下载中

  • 这样你可以获得3次并行下载。

    取决于你的非共享文件有多大。如果它们不是太大,就把它们组合起来。请求通常比传输时间长。当然,如果你真的很在乎,你应该做你自己的基准测试

    但如果有疑问,请合并


    编辑:我刚刚又读了一遍你的问题。选项B更好,因为它可以缓存主组合版本。

    我使用了一种叫做http组合器的东西,但我的列表中的请求数尽可能少(非常少)。我可以合并2-3个(所有CDN),但我想我会失去潜在的缓存版本,所以我就离开了它。记住,来自不同域的请求是并行运行的。因此,Google/MS/local站点请求也将同时运行。另外,一旦您为特定用户下载了JQuery/JQuery UI/JQuery Validate一次,他们很可能在缓存中就有了它。因此,关键是将您的本地资源请求减少到一个尽可能小的请求。我将对此进行研究,不确定它与我正在使用的请求有何不同。现在有一个(谷歌的东西)你是在梳理它们还是仅仅使用链接?是的,我知道不同的域是并行运行的,这就是为什么我试图为jquery U找到第三个站点。这样我就可以让这三个站点同时运行。@chobo2-你不必担心这个。每个域有两个并行请求。所以jquery和jquery用户界面将同时从谷歌下载。你仍然建议动态合并这些文件,还是会影响缓存?保持你的js文件相对较小,不要将太多内容合并到一个大文件中!使用服务器端语言根据当前页面进行切换!最小化所有js文件!可能应该修改标题,说HTTP请求或Javascript性能,因为这不是关于Javascript或jQuery的特别内容。除此之外,最好至少分成两个文件进行并行HTTP下载。