我了解如何使用 asp.net 的新捆绑和缩小功能。它们在开发过程中很有帮助。
不过,在生产部署中使用它们有什么好处吗?如果您只是将捆绑/缩小的文件放在 Web 服务器上,系统性能会更好吗?总体而言,如果它们只是静态文件,那么运行的代码似乎更少。
注意:我理解捆绑和缩小 js/css 的好处。我只是质疑使用活动运行时进程在生产系统中生成这些文件的价值,而不是简单地将它们存储在磁盘上并将它们作为静态文件引用。
我了解如何使用 asp.net 的新捆绑和缩小功能。它们在开发过程中很有帮助。
不过,在生产部署中使用它们有什么好处吗?如果您只是将捆绑/缩小的文件放在 Web 服务器上,系统性能会更好吗?总体而言,如果它们只是静态文件,那么运行的代码似乎更少。
注意:我理解捆绑和缩小 js/css 的好处。我只是质疑使用活动运行时进程在生产系统中生成这些文件的价值,而不是简单地将它们存储在磁盘上并将它们作为静态文件引用。
捆绑和缩小在生产中比在开发中更有用。它可以显着提高您的首页点击下载时间。
捆绑通过将多个 CSS 文件和 Javascript 文件组合成单个 CSS 文件和 javascript 文件来减少对服务器的单个 HTTP 请求的数量。
缩小通过删除空格、注释和其他不必要的字符来减少 CSS 和 javascript 文件的文件下载大小。
这种微小的优势在生产环境中比在开发环境中更为明显。所以最好在生产中使用捆绑和缩小。
具体到您的问题,在运行时捆绑/缩小没有明显的好处。此功能只是为了使开发人员的工作更轻松。因此,如果您确定自己在做什么,那么在生产中使用手动捆绑/缩小的资产会更好。
更新: 根据MSDN,在运行时捆绑/缩小确实有好处
ASP.NET 4.5 中的捆绑和缩小是在运行时执行的,因此该进程可以识别用户代理(例如 IE、Mozilla 等),从而通过针对用户浏览器来改进压缩(例如,删除东西当请求来自 IE 时,这是 Mozilla 特有的)。
动态捆绑的强大之处在于您可以包含静态 JavaScript,以及编译成 JavaScript 的语言中的其他文件。
例如,CoffeeScript 是一种编译成 JavaScript 的编程语言
捆绑和缩小提供了 2 个基本功能,以提高页面加载的性能。
捆绑- 将所有提供的脚本/ CSS 捆绑在一个文件中,这样只有浏览器需要加载一个文件而不是多个文件。
注意->通常浏览器只能同时请求 6 个从服务器获取资源的请求。其他请求由浏览器排队等待以后处理。因此,如果我们有多个文件,那么它可能必须在请求队列中等待。
缩小- 缩小过程通过删除注释、多余的空格和重命名变量名来生成一个缩小的文件。因此,这会减小文件大小并加快下载速度。
缩小 - 更小的文件,更少的 kb,更快的页面加载。
捆绑 - 浏览器限制每个 http 主机的连接。这意味着用户访问您的页面,并且您(假设)有 24 个脚本和链接(css)标签,您的浏览器一次处理 6 个(大多数浏览器的限制) - 减慢了页面加载速度。捆绑使浏览器将您的所有文件视为单个文件 - 覆盖此限制。
捆绑的另一个好处是它减少了缓存问题。当我们使用键将其加载到页面时,如下所示。
<script src="/bundles/jquery?v=FVs3ACwOLIVInrAl5sdzR2jrCDmVOWFbZMY6g6Q0ulE1"></script>
每次我们更改脚本时,它都会生成不同的密钥。因此,如果我们更改某些内容,文件将被缓存。但是当我们不使用它时,因为脚本文件具有相同的名称,有时我们必须清除缓存才能看到更改。