已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026)国家开放大学电大专科《市场营销学》期末试题及答案
- 【高中语文】《声声慢(寻寻觅觅)》教案+统编版高一语文必修上册
- 部编人教版六年级上册语文第18课《只有一个地球》教案
- 2024年巴彦淖尔市磴口县社区工作者招聘真题
- 人教版(2024)六年级全一册信息科技第10课 开环控制应用广 教案
- 2025年许昌辅警协警招聘考试备考题库有完整答案详解
- 2025年海西州辅警招聘考试真题附答案详解
- 2025年贵阳辅警协警招聘考试真题及参考答案详解1套
- 2025年邯郸辅警协警招聘考试真题附答案详解(培优a卷)
- 2025年荆州辅警协警招聘考试备考题库及答案详解(名校卷)
- 2024-2025苏教版(2017)小学科学四年级上册期末考试测试卷及参考答案(共3套)
- 2024年广东高考物理试题分析和复习策略
- 中职学校学生量化考核规定
- 环境保护工作者个人自传范文
- 消毒供应专科护士培训与学习汇报
- 2025年人格权法的试题及答案
- 部编版八年级上册语文文言文总复习
- 建设工程造价管理协会工程造价纠纷调解手册
- Unit4EatWell(第3课时)SectionA3a-3d课件-人教版英语七年级下册
- 实施工程师述职报告
- 消防设施维护保养记录
评论
0/150
提交评论