已阅读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年面向社会公开招聘2名水电工笔试考试参考题库附答案解析
- 腾讯产品经理面试经验分享与技巧
- 2025年热射病指南试题及答案
- 云南事业单位面试技巧与心理调适指南
- 2025年园林绿化工高级技师考试题及答案
- (2025)二级建造师继续教育试题库及答案
- 2025年汽车维修工(中级)职业技能鉴定考试试卷及答案
- 绿色农业种植技术与实践
- 返贫现象中的教育因素与解决路径
- 2025广西来宾市教育系统参加广西2026届师范类毕业生就业双选会(桂林专场)招聘教师153人考试笔试备考试题及答案解析
- 中职学校学生量化考核规定
- 环境保护工作者个人自传范文
- 消毒供应专科护士培训与学习汇报
- 2025年人格权法的试题及答案
- 部编版八年级上册语文文言文总复习
- 建设工程造价管理协会工程造价纠纷调解手册
- Unit4EatWell(第3课时)SectionA3a-3d课件-人教版英语七年级下册
- 实施工程师述职报告
- 消防设施维护保养记录
- 青岛版六年级上册小学科学全册练习含答案
- 家长课堂:交通安全教育
评论
0/150
提交评论