在企业应用程序框架中包含js/css文件的最佳实践是什么

What is the best practice to include js/css files in an enterprise application framework?

本文关键字:文件 最佳 是什么 css 应用程序框架 企业 包含 js      更新时间:2023-09-26

我正在ASP.NET MVC3中进行企业应用程序开发。当然,我有不同的主布局和多个视图。

我的担忧

  • 在主布局中包含所有js/css文件可能会影响页面的性能
  • 将文件包括在视图中(在需要的地方)会创建重复引用(启动jquery/其他库)
  • 引用越多,后面的内容就越多;客户端和服务器之间的forth请求,这反过来又会影响输出页面的性能

我的想法

  1. 创建所需资源的自定义列表,并将其存储在ViewBag中。让主布局引用此对象以包含js/css文件
  2. 或者添加引用具有某个键的操作的链接(用于标识正在呈现的页面的唯一值),并将所有所需资源动态生成输出作为单个响应。并使用后续请求的唯一密钥缓存输出(inmem/staticfile)。一种自定义资源绑定

请分享你的想法,任何想法和建议都欢迎!

编辑:2012年9月17日

下面的答案更多的是关于web应用程序开发世界中的优化技术——欣赏这些答案。

我想从体系结构的角度进行讨论,重点是创建所呈现页面所需的动态资源集合。

例如,在特定的视图中,我想使用需要jQuery-UI-1.8.11.min.js的jQuery UI,在某些视图中我想使用MVC3 ajax,它需要MicrosoftMvcAjax.js和jQuery.uno唐突-ajax.min.js

我不想在主布局中包含永久引用,这将导致为所有视图加载这些js。相反,我希望在运行时包含动态的js文件。

希望这能增加清晰度!

感谢您的帮助-Vinod

您需要首先考虑减少下载大小:

  • 将所有的js和css放入尽可能少的文件中。这是因为客户端在任何时候都只能打开2个HTTP通道(大多数浏览器现在支持更多,请参阅此处的信息),在此之后的所有文件下载都将排队,直到之前的文件下载完成
  • 缩小你的js和css

一旦你把它缩小到合理的尺寸,你就可以考虑上面的问题。您想要下载的内容数量最少,因此在主控中。这将提高性能,因为这样客户端就可以缓存它。缓存是一件好事,这可以阻止客户端每次访问您网站上的页面时都必须请求js和css。

您可能还需要考虑应用HTTP过期标头。

雅虎在很多这样的想法上做得很好:http://developer.yahoo.com/performance/rules.html

另外不要把你的js放在viewbag里。这是服务器上不必要的开销和负载。只需在页面中添加参考即可!

MVC4现在支持捆绑