在企业应用程序框架中包含js/css文件的最佳实践是什么
What is the best practice to include js/css files in an enterprise application framework?
我正在ASP.NET MVC3中进行企业应用程序开发。当然,我有不同的主布局和多个视图。
我的担忧
- 在主布局中包含所有js/css文件可能会影响页面的性能
- 将文件包括在视图中(在需要的地方)会创建重复引用(启动jquery/其他库)
- 引用越多,后面的内容就越多;客户端和服务器之间的forth请求,这反过来又会影响输出页面的性能
我的想法
- 创建所需资源的自定义列表,并将其存储在ViewBag中。让主布局引用此对象以包含js/css文件
- 或者添加引用具有某个键的操作的链接(用于标识正在呈现的页面的唯一值),并将所有所需资源动态生成输出作为单个响应。并使用后续请求的唯一密钥缓存输出(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现在支持捆绑
相关文章:
- 什么's是连接供应商js文件的最佳方式
- 将大数组(字符串和类型数组的混合物)存储到blob或文件中/从blob或文件检索大数组的最佳方式
- 节点:'最佳实践'使用其他js文件的js文件
- ExtJS类的最佳实践最终导致了太多的.JS文件.性能怎么样
- 在企业应用程序框架中包含js/css文件的最佳实践是什么
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 将文件夹中的所有图像包括在阵列中的最佳方式是什么
- 最佳实现:将图像文件上传到数据库,并从数据库中读取图像
- 通过http传输大文件(>100MB)的最佳方式
- Jade包含JavaScript文件的最佳实践
- 链接不同 Web 文件夹中的图像/文件的最佳实践
- Web 项目的文件夹/目录结构 - 最佳做法
- 使用标记和 (TXT) .dat 文件中追加信息的最佳方式.从窗体
- 从 Javascript 读取硬编码 csv 文件的最佳实践
- 在 Node.JS 中使用配置文件的最佳方式
- 加载正确的PhoneGap文件的最佳方法是什么
- 整合多个 Javascript 文件的最佳实践是什么?
- 让目录中的所有文件都成为 webpack 中的入口点的最佳方法
- 通过web应用程序下载文件[最佳实践]
- 将JavaScript代码拆分为几个文件:最佳实践