15

我了解如何使用 asp.net 的新捆绑和缩小功能。它们在开发过程中很有帮助。

不过,在生产部署中使用它们有什么好处吗?如果您只是将捆绑/缩小的文件放在 Web 服务器上,系统性能会更好吗?总体而言,如果它们只是静态文件,那么运行的代码似乎更少。

注意:我理解捆绑和缩小 js/css 的好处。我只是质疑使用活动运行时进程在生产系统中生成这些文件的价值,而不是简单地将它们存储在磁盘上并将它们作为静态文件引用。

4

4 回答 4

19

捆绑和缩小在生产中比在开发中更有用。它可以显着提高您的首页点击下载时间。

  • 捆绑通过将多个 CSS 文件和 Javascript 文件组合成单个 CSS 文件和 javascript 文件来减少对服务器的单个 HTTP 请求的数量。

  • 缩小通过删除空格、注释和其他不必要的字符来减少 CSS 和 javascript 文件的文件下载大小。

这种微小的优势在生产环境中比在开发环境中更为明显。所以最好在生产中使用捆绑和缩小。

具体到您的问题,在运行时捆绑/缩小没有明显的好处。此功能只是为了使开发人员的工作更轻松。因此,如果您确定自己在做什么,那么在生产中使用手动捆绑/缩小的资产会更好。

更新: 根据MSDN,在运行时捆绑/缩小确实有好处

ASP.NET 4.5 中的捆绑和缩小是在运行时执行的,因此该进程可以识别用户代理(例如 IE、Mozilla 等),从而通过针对用户浏览器来改进压缩(例如,删除东西当请求来自 IE 时,这是 Mozilla 特有的)。

动态捆绑的强大之处在于您可以包含静态 JavaScript,以及编译成 JavaScript 的语言中的其他文件。

例如,CoffeeScript 是一种编译成 JavaScript 的编程语言

于 2012-10-09T17:11:42.227 回答
2

捆绑和缩小提供了 2 个基本功能,以提高页面加载的性能。

捆绑- 将所有提供的脚本/ CSS 捆绑在一个文件中,这样只有浏览器需要加载一个文件而不是多个文件。
注意->通常浏览器只能同时请求 6 个从服务器获取资源的请求。其他请求由浏览器排队等待以后处理。因此,如果我们有多个文件,那么它可能必须在请求队列中等待。

缩小- 缩小过程通过删除注释、多余的空格和重命名变量名来生成一个缩小的文件。因此,这会减小文件大小并加快下载速度。

于 2015-12-18T13:08:53.317 回答
1

缩小 - 更小的文件,更少的 kb,更快的页面加载。

捆绑 - 浏览器限制每个 http 主机的连接。这意味着用户访问您的页面,并且您(假设)有 24 个脚本和链接(css)标签,您的浏览器一次处理 6 个(大多数浏览器的限制) - 减慢了页面加载速度。捆绑使浏览器将您的所有文件视为单个文件 - 覆盖此限制。

于 2012-10-09T17:15:01.383 回答
1

捆绑的另一个好处是它减少了缓存问题。当我们使用键将其加载到页面时,如下所示。

<script src="/bundles/jquery?v=FVs3ACwOLIVInrAl5sdzR2jrCDmVOWFbZMY6g6Q0ulE1"></script>

每次我们更改脚本时,它都会生成不同的密钥。因此,如果我们更改某些内容,文件将被缓存。但是当我们不使用它时,因为脚本文件具有相同的名称,有时我们必须清除缓存才能看到更改。

于 2016-07-15T09:23:52.840 回答