亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

Asp.net程序優化js、css實現合并與壓縮的方法

2024-07-10 13:28:39
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Asp.net程序優化js、css實現合并與壓縮的方法,使用第三方組件實現訪問時將js與css文件壓縮并緩存在客戶端的效果,非常具有實用價值,需要的朋友可以參考下
 
 

本文實例講述了Asp.net程序優化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.Cache[cachekey] 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"></script>
<link rel="stylesheet" type="text/css" href="/css/CombineFiles.axd?type=css" />

 

希望本文所述對大家的asp.net程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲自拍欧美色图| 久久国产精品网站| 国产精品专区h在线观看| 欧美成人合集magnet| 亚洲精品国偷自产在线99热| 国产成人jvid在线播放| 国产精品美女免费视频| 欧美巨大黑人极品精男| 国产精品99久久久久久白浆小说| 亚洲免费av片| 日韩激情av在线免费观看| 成人激情在线播放| 久久青草精品视频免费观看| 日韩精品极品视频免费观看| 自拍偷拍亚洲在线| 欧美激情二区三区| 亚洲码在线观看| 成人久久精品视频| 大胆欧美人体视频| 97久久精品国产| 人妖精品videosex性欧美| 欧美日韩国产在线播放| 国产视频丨精品|在线观看| 欧美性色19p| 亚洲人成网站999久久久综合| 日韩福利视频在线观看| 色妞色视频一区二区三区四区| 久久精品久久精品亚洲人| 色综合久久精品亚洲国产| 奇门遁甲1982国语版免费观看高清| 欧美日本精品在线| 欧美二区乱c黑人| 欧美日韩国产精品一区二区三区四区| 国产在线a不卡| 国产在线观看精品一区二区三区| 欧美另类极品videosbest最新版本| 国产69精品久久久久9999| 69久久夜色精品国产69乱青草| 欧美高清videos高潮hd| 中文字幕在线成人| 欧美在线播放视频| 日韩av网站在线| 久久夜精品香蕉| 亚州欧美日韩中文视频| 九九精品在线观看| 97精品久久久中文字幕免费| 2020欧美日韩在线视频| 88国产精品欧美一区二区三区| 亚洲人成欧美中文字幕| 国产盗摄xxxx视频xxx69| 欧美日韩一区二区免费在线观看| 日韩精品在线观| 中文字幕久热精品在线视频| 欧美巨猛xxxx猛交黑人97人| 亚洲国产精品成人一区二区| 久久人人看视频| 成人在线视频福利| 综合激情国产一区| 国产精品国产三级国产aⅴ浪潮| 一区二区欧美激情| 亚洲天堂第一页| 国产亚洲激情视频在线| 日韩亚洲欧美成人| 精品国产欧美一区二区三区成人| 亚洲欧洲日韩国产| 欧美激情xxxx性bbbb| 国产精品亚洲网站| 国产福利精品视频| 欧洲精品久久久| 久久激情视频免费观看| 亚洲人成五月天| 亚洲图片在线综合| 欧美在线国产精品| 国产一区二区三区网站| 亚洲天堂av在线免费观看| 96国产粉嫩美女| 自拍偷拍亚洲在线| 日本久久久久亚洲中字幕| 久久久久久久久久久免费精品| 久久色精品视频| 亚洲欧美日韩精品久久奇米色影视| 国产精品美女免费看| 国产精品9999| 成人性生交xxxxx网站| 热99精品只有里视频精品| 国产精品亚洲第一区| 98精品国产高清在线xxxx天堂| 国产精品一区二区三区毛片淫片| 午夜精品久久久久久久99热| 日韩欧美国产中文字幕| 中文字幕亚洲欧美日韩高清| 欧美怡春院一区二区三区| 国产精品人人做人人爽| 一个人看的www久久| 国产精品一区=区| 国内精品一区二区三区四区| 这里只有精品视频在线| 日本久久亚洲电影| 国产精品入口尤物| 欧美中文字幕在线| 国产精品美女av| 欧美成人精品在线观看| 国语自产精品视频在线看抢先版图片| 亚洲国产精品久久久久| 98视频在线噜噜噜国产| 亚洲的天堂在线中文字幕| 日韩网站免费观看| 国产精品高潮呻吟视频| 国产精品九九久久久久久久| 青草青草久热精品视频在线网站| 国产精品美女无圣光视频| 日韩大片免费观看视频播放| 91中文字幕一区| 91在线中文字幕| 一个色综合导航| 日本sm极度另类视频| 538国产精品一区二区在线| 欧美亚洲国产精品| 久久久视频精品| 精品国产91久久久| 国产不卡视频在线| 国产亚洲免费的视频看| 亚洲乱码一区二区| 久久精品国产一区二区电影| 91精品综合久久久久久五月天| 日韩免费av片在线观看| 国产精品夜间视频香蕉| 国外成人在线直播| 亚洲人成伊人成综合网久久久| 国内精品久久久久久久久| 久久久免费电影| 亚洲精品久久视频| 欧美日韩国产成人在线观看| 国产午夜精品免费一区二区三区| 日韩成人性视频| 亚洲精品自在久久| 欧美孕妇毛茸茸xxxx| 久久久久久久一区二区| 国产精品久久不能| 国产在线观看精品一区二区三区| 91免费版网站入口| 中文字幕亚洲综合久久筱田步美| 亚洲第五色综合网| 国产精品扒开腿做爽爽爽视频| 欧美极品少妇全裸体| 国产精品成人免费视频| 日产精品99久久久久久| 亚洲精品一区久久久久久| 亚洲欧美精品suv| 欧美中在线观看| 一区二区三区高清国产| 国产精品高潮呻吟久久av黑人| 日韩欧美亚洲综合| 国模极品一区二区三区| 日韩高清有码在线| 欧美又大粗又爽又黄大片视频| 日本久久久a级免费| 亚洲乱码一区av黑人高潮| www.日韩系列| 精品久久久久久中文字幕大豆网| 538国产精品视频一区二区| 成人黄色免费看| 色老头一区二区三区| 欧美黑人巨大精品一区二区|