压缩脚本和样式,并将所有js和样式引用合并为单个引用,以优化网站性能
Compressing scripts and styles and combining all js and styles references into single reference to optimize the sites performace
我的asp站点中有多个脚本和样式引用。当我观察我的网站网络实例时,它正在处理46个请求,这真的太多了,极大地影响了我的网站性能。由于我在一个页面中有多个脚本和样式引用,这导致了过多的http调用。现在我想压缩gzip中的所有脚本和样式,然后在一个脚本引用中组合多个脚本,在一个样式引用中组合多种样式。
<link type="text/css" rel="stylesheet" href="/css/main.css" />
<link type="text/css" rel="stylesheet" href="/css/style1.css" />
<link type="text/css" rel="stylesheet" href="/css/style2.css" />
<script type="text/javascript" src="/scripts/js/js1.js"></script>
<script type="text/javascript" src="/scripts/js/search/jsSerach.js"></script>
<script type="text/javascript" src="/scripts/js/cust/jsCust.js"></script>
当我将测试代码转移到生产中时,我想要压缩所有三种样式的引用,然后将它们组合为单个引用,如masterStyle,类似于所有js引用。
为了实现这一点,我喜欢一个不错的工具YUI工具,但我对如何使用它感到困惑,还认为我必须用新的组合引用来替换相应页面中特定风格或脚本的引用,我认为这可能有一些风险。任何人都可以建议我如何进行。提前谢谢。
我使用Client Dependency Framework
实现了同样的目标,并取得了很大成功。由于CDF的主要功能是管理客户端依赖性,它还将提供额外的价值,允许您在所有代码中自由包含客户端脚本,并且CDF只在需要时包含一次。
有一个Microsoft.AspNet.Web.Optimization nuget包就是为了解决这个问题而设计的。有关如何将其应用于ASP.NET Web表单的详细信息,请参阅此博客。
请注意,所提供的解决方案将仅在发布模式下合并和缩小脚本/css。它也相当灵活。
http://code.google.com/p/minify/试试这个组合所有的js和css缩小
无论你使用什么解决方案,当你保存其中一个文件时,你都希望它能自动更新。这将为你在创建和维护网站时节省大量时间和精力。
ASP.Net提供捆绑功能,可以组合和缩小CSS和JS。这绝对是ASP.Net的首选路径。要在ASP.Net中使用绑定,您只需要创建您的绑定(通常在global.asax.cs中),如…
bundles.Add(new ScriptBundle("~/Whatever/YouWant.js").Include(
"~/Scripts/File1.js",
"~/Scripts/File2.js"));
然后把它写成这样的html。。。
@Scripts.Render("~/Whatever/YouWant.js")
如果web.config中的debug为true,则它将写出每个文件,而不是缩小的。如果debug为false,那么它将写出捆绑包的路径以及querystring中文件的哈希值,并返回代码的捆绑和缩小版本。哈希值允许您在客户端浏览器中缓存文件,但如果发生任何更改,浏览器将请求一个新文件。
捆绑包的名称可以是您想要的任何名称,但应避免将其命名为与现有文件相同的名称,否则它将不起作用。我通常使用~/Bundles/Whatever.js来避免这种情况(假设您没有名为Bundles的文件夹)。
捆绑文件的另一种方法是使用Web Essentials。Web Essentials有一种不同的处理绑定的方式。您可以右键单击要捆绑的文件,然后选择Web Essentials->创建XXX捆绑文件。就我个人而言,我可能会避免这个功能,因为ASP.Net提供了一个很好的解决方案,所以Web Essentials可能会放弃它。
vs12的捆绑和缩小功能您也可以使用我们http://www.jsmini.com/缩小javascript
- 引用对象中的通用值
- 如何在JavaScript中将字符串转换为函数引用
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 将样式表插入iframe
- 跟踪在页面加载时应用内联样式的JavaScript
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 在动态创建的元素上获取对特定选择器的引用
- IIFE中的函数引用不可用
- 压缩脚本和样式,并将所有js和样式引用合并为单个引用,以优化网站性能
- 如何使用 ExtendScript 从 InDesign 文档的所有脚注引用中删除斜体和粗体样式
- 我一直收到未捕获的引用错误:未定义下拉菜单和未捕获的类型错误:无法读取 null 的属性“样式”
- HTML5 样板和循环渲染路径/引用脚本和样式
- 引用 JavaScript 地铁风格应用的 C# 地铁样式应用
- 使用变量引用样式属性
- 什么是 ?参数,以这些脚本和样式表引用
- 在打印 html 内容中添加外部样式表引用后,打印预览为空白
- 对于 IE9 中@import引用的样式表对象,href 属性是错误的
- 使用querySelector(..)在样式块中引用选择器
- Ruby中的JS样式对象引用
- 有没有办法使用 CSS 或 javascript 从另一个 CSS 样式引用现有的 CSS 样式