详解Asp.Net MVC的Bundle捆绑

2019-12-30 18:33:34丽君

Bundle缓存

浏览器是根据URL来缓存数据的。浏览器无论何时请求资源,都会根据URL来检查缓存里是否包含了该资源文件。如果包含了,浏览器就不会再去请求,而是使用缓存的文件,来渲染。

Bundle机制使我们每次修改资源文件时都会在URL后自动添加一个哈希值,从而避免浏览器缓存,不能及时更新资源的情况。

Asp.Net,MVC,Bundle捆绑

v=******,后面的值就是哈希值。Bundle 在Debug模式下默认是没有开启的。在发布模式下才会开启。但是我们可以在BundleConfig下添加BundleTable.EnableOptimizations = true;开启捆绑模式。

Bundle注意事项
一个Bundle一般包含多个文件,如果我们只是修改了其中的一个文件,那么Bundle的哈希值也会改变,就会更新Bundle的所有文件。

捆绑和缩小主要降低了第一次访问页面时加载的时间。此时静态资源就会被缓存起来(js,css,图片)。当访问其他页面,且该页面的资源地址和第一次访问的地址相同时,就会从缓存里获取,不再向服务端获取。

如果资源过多,使用CDN,比使用Bundle更有效。当然Bundle也可以结合CDN使用。 通过使用CDN,可以减轻每个主机名8个并发连接的浏览器限制。因为CDN的主机名与您的主机站点不同,CDN上的资产请求不会与您的主机环境的8个并发连接数计数。

Bundle最好按照功能来区分捆绑。例如,默认的ASP.Net应用程序的NET MVC模板创建了一个与jQuery分离的jQuery验证包。因为所创建的默认视图输入输出值,所以它们需要验证包。


注:相关教程知识阅读请移步到c#教程频道。