Require.js优化与asp.net mvc 4捆绑和缩小



最近我看到Mvc4包含了将多个脚本和css捆绑和缩小到一个链接中,该链接通过单个配置缩小并减少了脚本加载时间。

require.js r.js也是一个可用于脚本加载和缩小的优化工具。有人能告诉我哪个更好吗?或者require.js是否可以和缩小+捆绑工具一样使用,将脚本加载到单个文件中?就像Mvc4一样?

我更喜欢使用require.js进行AMD加载,所以如果在require.js中可以作为脚本的单个url加载和优化和缩小的css,我会考虑应用Mvc4缩小思想的概念。

有人能为这个话题提出一些想法和启示吗?

Require.js是一个客户端工具,它只允许客户端请求它需要的脚本。通常在MVC应用程序中,每个脚本最终都被添加到_layout.cshtml文件中,并且没有对每个控制器的需求进行太多思考。Require.js允许您思考每个模块需要什么才能运行。

r.js需要node或java,是一个服务器端工具,有点类似于MVC4绑定和缩小。r.js与require协同工作,尝试缩小常用的捆绑包,并将其作为包发送。但是,通过捆绑和打包它们,您可能会在脚本"需要"它们之前将它们发送下来。

有趣的是,捆绑销售几乎违背了AMD的宗旨。也就是说,你将一大堆依赖的脚本捆绑到一个文件中,而不是让require.js来确定它需要哪些脚本,并在需要的时候发出请求。

关于集成require和mvc的一个很好的参考:http://www.stefanprodan.eu/2012/09/intro-requirejs-for-asp-net-mvc/-请注意,它不使用绑定。

所以对我来说,我认为缩小单个文件(并捆绑/缩小css),并根据需要进行工作,以支持AMD。

在我的特殊情况下(以及我之前遇到的许多其他情况),仅为了加载1-3kb脚本或样式文件而使用单独的请求执行额外的服务器加载没有多大意义。

  • 如前所述,此类请求使用的服务器资源通常是有限的
  • 加载需要时间,50-200ms保证滞后
  • 您拥有的文件越多,其中一个文件因连接问题而无法加载的可能性就越大
  • 将所有内容封装到模块中所需的样板代码数量也会带来开销

即使是巨大的5mb(这是不真实的)捆绑脚本也可以一次加载,然后再从缓存中加载,这看起来更高效、更安全。通过使用GZip,您将把5 mb的文本压缩成200 mb的二进制数据,这远远低于平均网站每次请求使用的图形内容量。

最新更新