




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 A程序优化js、css实现合并与压缩方法本文实例讲述了A程序优化js、css实现合并与压缩的方法。分享给大家供大家参考。具体实现方法如下: 访问时将js和css压缩并且缓存在客户端, 采用的是Yahoo.Yui.Compressor组件来完成的,用户可以点击此处本站下载。 创建一个IHttpHandler来处理文件 代码如下:public class CombineFiles : IHttpHandler private const string CacheKeyFormat = “_CacheKey_0_”; private const bool IsCompress = true; /需要压缩 public bool IsReusable get return false; public void ProcessRequest(HttpContext context) HttpRequest request = context.Request; HttpResponse response = context.Response; string cachekey = string.Empty; string type = request.QueryString“type”; if (!string.IsNullOrEmpty(type) && (type = “css” | type = “js”) if (type = “js”) response.ContentType = “text/javascript”; else if (type = “css”) response.ContentType = “text/css”; cachekey = string.Format(CacheKeyFormat, type); CompressCacheItem cacheItem = HttpRuntime.Cachecachekey as CompressCacheItem; if (cacheItem = null) string content = string.Empty; string path = context.Server.MapPath(“); /找到这个目录下所有的js或css文件,当然也可以进行配置,需求请求压缩哪些文件 /这里就将所的有文件都请求压缩 string files = Directory.GetFiles(path, “*.” + type); StringBuilder sb = new StringBuilder(); foreach (string fileName in files) if (File.Exists(fileName) string readstr = File.ReadAllText(fileName, Encoding.UTF8); sb.Append(readstr); content = sb.ToString(); / 开始压缩文件 if (IsCompress) if (type.Equals(“js”) content = JavaScriptCompressor.Compress(content); else if (type.Equals(“css”) content = CssCompressor.Compress(content); /输入到客户端还可以进行Gzip压缩 ,这里就省略了 cacheItem = new CompressCacheItem() Type = type, Content = content, Expires = DateTime.Now.AddDays(30) ; HttpRuntime.Cache.Insert(cachekey, cacheItem, null, cacheItem.Expires, TimeSpan.Zero); string ifModifiedSince = request.Headers“If-Modified-Since”; if (!string.IsNullOrEmpty(ifModifiedSince) && TimeSpan.FromTicks(cacheItem.Expires.Ticks - DateTime.Parse(ifModifiedSince).Ticks).Seconds < 0) response.StatusCode = (int)System.Net.HttpStatusCode.NotModified; response.StatusDescription = “Not Modified”; else response.Write(cacheItem.Content); SetClientCaching(response, cacheItem.Expires); private void SetClientCaching(HttpResponse response, DateTime expires) response.Cache.SetETag(DateTime.Now.Ticks.ToString(); response.Cache.SetLastModified(DateTime.Now); /public 以指定响应能由客户端和共享(代理)缓存进行缓存。 response.Cache.SetCacheability(HttpCacheability.Public); /是允许文档在被视为陈旧之前存在的最长绝对时间。 response.Cache.SetMaxAge(TimeSpan.FromTicks(expires.Ticks); response.Cache.SetSlidingExpiration(true); private class CompressCacheItem / <summary / 类型 js 或 css / </summary public string Type get; set; / js css / <summary / 内容 / </summary public string Content set; get; / <summary / 过期时间 / </summary public DateTime Expires set; get; 最后在配置文件中配置一下CombineFiles.axd文件,具体配置略 引用如下 复制代码 代码如下:<script type=“text/javascript” src=“/js/CombineFiles.axd?type=js”</s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年标准工地安全员考试题库及答案
- 2024烟草职业技能鉴定通关考试题库及答案详解【网校专用】
- 2024自考专业(公共关系)经典例题含答案详解【突破训练】
- 时尚男装款式规划
- 大学生兼职实习合同范本及注意事项
- 人身意外险理赔细则规程
- 毛衣款式设计规程
- 外贸出口合同范本参考
- 特种设备相关管理电梯考试模拟试题及答案
- 在初高中阶段如何引导学生成立科学的思维方式
- 挠度计算模板表格(自动版)
- (中职中专)财经法规与会计职业道德课件完整版电子教案
- 宝钢集团生产安全事故案例汇编
- DB37T 5151-2019 园林绿化工程资料管理规程
- Q∕GDW 11612.43-2018 低压电力线高速载波通信互联互通技术规范 第4-3部分:应用层通信协议
- 贝多芬F大调浪漫曲—小提琴谱(带钢伴谱)
- 为老年人更换纸尿裤评分标准
- 压力传感器(课堂PPT)
- 热力厂锅炉车间2#锅炉大修施工方案
- (施工方案)场地三通一平施工方案
- 深圳市政府投资市政工程施工质量检查用表
评论
0/150
提交评论