动态压缩去掉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技术的优质平台!