现在的位置: 首页 > 移动开发 > 正文

Asp.net MVC js,css动态怎么合并和压缩

2020年06月02日 移动开发 ⁄ 共 2194字 ⁄ 字号 评论关闭

  动态压缩去掉js重复引用js缓存js延迟加载web优化之-asp.netjs延迟加载js动态合并js动态压缩看了一下的访问两比较大,现在js和css的合并压缩整理一下。下面学步园小编来讲解下Asp.netMVCjs,css动态怎么合并和压缩?

  Asp.netMVCjs,css动态怎么合并和压缩

  首先还是需要一个handler来处理文件的合并、压缩、缓存,.js和css的压缩我们采用的是Yahoo.Yui.Compressor,所以需要引用Yahoo.Yui.Compressor.dll文件

  代码如下:

  [csharp]viewplaincopyprint?publicclassCombineFiles:IHttpHandler

  {

  publicvoidProcessRequest(HttpContextcontext)

  {

  context.Response.ContentType="text/javascript";

  HttpRequestrequest=context.Request;

  HttpResponseresponse=context.Response;

  string[]allkeys=request.QueryString.AllKeys;

  if(!allkeys.Contains("href")||!allkeys.Contains("type")||!allkeys.Contains("compress"))

  {

  response.Write("请求格式不正确,正确格式是type=…&href=…&compress=…");

  response.Write("type只能是js或则css,compress只能是true或则false,href则是请求的文件,多个文件已逗号分隔");

  }

  else

  {

  stringcacheKey=request.Url.Query;

  #region/*确定合并文件类型*/

  stringfileType=request.QueryString["type"].Trim()。ToLower();

  stringcontenType=string.Empty;

  if(fileType.Equals("js"))

  {

  contenType="text/javascript";

  }

  elseif(fileType.Equals("css"))

  {

  contenType="text/css";

  }

  /*确定合并文件类型*/

  #endregion

  CacheItemcacheItem=HttpRuntime.Cache.Get(cacheKey)asCacheItem;//服务端缓存

  if(cacheItem==null)

  {

  #region合并压缩文件

  /*合并文件*/

  Asp.netMVCjs,css动态怎么合并和压缩

  stringhref=context.Request.QueryString["href"].Trim();

  stringcontent=string.Empty;

  string[]files=href.Split(newstring[]{",",","},StringSplitOptions.RemoveEmptyEntries);

  StringBuildersb=newStringBuilder();

  foreach(stringfileNameinfiles)

  {

  stringfilePath=context.Server.MapPath(fileName);

  if(File.Exists(filePath))

  {

  stringreadstr=File.ReadAllText(filePath,Encoding.UTF8);

  sb.Append(readstr);

  //content=JavaScriptCompressor.Compress(content);

  //response.Write(content);

  }

  else

  {

  sb.AppendLine("\r\n未找到源文件"+filePath+"\r\n");

  }

  }

  content=sb.ToString();

  /*合并文件*/

  /*压缩文件*/

  stringcompressStr=request.QueryString["compress"].Trim();booliscompress=bool.Parse(compressStr);

  if(iscompress)

  {

  if(fileType.Equals("js"))

  {

  content=JavaScriptCompressor.Compress(content);

  }

  elseif(fileType.Equals("css"))

  {

  content=CssCompressor.Compress(content);

  }

  }

  /*压缩文件*/

  以上就是关于“Asp.netMVCjs,css动态怎么合并和压缩”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.