zoukankan      html  css  js  c++  java
  • 利用缓存

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Web.Caching;
    
    namespace SpaceTime
    {
        /// <summary>
        /// VsCache 的摘要说明
        /// </summary>
        public class STCache
        {
            public STCache()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
            }
    
    
            private static void onRemove(string strIdentify, object userInfo, CacheItemRemovedReason reason)
            {
    
            }
            //建立回调委托的一个实例
            CacheItemRemovedCallback callBack = new CacheItemRemovedCallback(onRemove);
    
    
            /// <summary>
            /// 创建缓存对象(默认24小时缓存)
            /// </summary>
            /// <param name="name">键名</param>
            /// <param name="value">键值</param>
            public static void CreateCache(string name, object value)
            {
                CreateCache(name, 24, value);
            }
    
            /// <summary>
            /// 创建缓存对象(指定缓存小时)
            /// </summary>
            /// <param name="name">键名</param>
            /// <param name="hours">缓存时间(小时)</param>
            /// <param name="value">键值</param>
            public static void CreateCache(string name,double hours, object value)
            {
                //建立回调委托的一个实例
                CacheItemRemovedCallback callBack = new CacheItemRemovedCallback(onRemove);
    
                //以Identify为标志,将userInfo存入Cache
                HttpContext.Current.Cache.Insert(name, value, null,
                     System.DateTime.Now.AddHours(hours),//当前指定为24小时,7*24=168
                     System.Web.Caching.Cache.NoSlidingExpiration,
                     System.Web.Caching.CacheItemPriority.Default,
                     callBack);
            }
    
            /// <summary>
            /// 读取缓存对象结果
            /// </summary>
            /// <param name="name">键名</param>
            /// <returns></returns>
            public static object GetCache(string name)
            {
                if (ExistCache(name))
                {
                    return HttpContext.Current.Cache[name];
                }
                else
                {
                    return null;
                }
            }
    
    
            /// <summary>
            /// 判断存储的"一键一值"值是否还存在(有没有过期失效或从来都未存储过)
            /// </summary>
            /// <param name="name"></param>
            /// <returns></returns>
            public static bool ExistCache(string name)
            {
                if (HttpContext.Current.Cache[name] != null)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
    
            /// <summary>
            /// 删除缓存数据
            /// </summary>
            /// <param name="name"></param>
            public static void Remove(string name)
            {
                try
                {
                    HttpContext.Current.Cache.Remove(name);                
                }
                catch (Exception exp)
                { 
                    //
                }
    
            }
        }
    }
    
    private void BindItemCats()
        {
            try
            {
                int pageIndex = DNTRequest.GetInt("PageNo", 1);
                List<TaobaokeItem> items = new List<TaobaokeItem>();//定义返回商品泛型对象
                string totalPageNum = "0";
                if (!SpaceTime.STCache.ExistCache("ItemList-" + cid + "_" + pageIndex))
                {
                    TopXmlRestClient client = new TopXmlRestClient("http://gw.api.taobao.com/router/rest", "12150539", "f1e413524f3bec524c7677aba2ab43f3");
                    DynamicTopRequest req = new DynamicTopRequest("taobao.taobaoke.items.get");
                    req.AddTextParameter("fields", "iid,num_iid,title,nick,pic_url,price,click_url,commission,commission_rate,commission_num,commission_volume,seller_credit_score,item_location,volume,shop_click_url,total_results");
                    req.AddTextParameter("nick", "andyli783");
                    if (cid != 0)
                    {
                        req.AddTextParameter("cid", cid);
                    }
                    req.AddTextParameter("keyword", DNTRequest.GetString("key"));
                    req.AddTextParameter("page_no", pageIndex);
                    req.AddTextParameter("page_size", 18);
    
                    req.AddTextParameter("start_price", DNTRequest.GetString("sc"));
                    req.AddTextParameter("end_price", DNTRequest.GetString("ec"));
                    req.AddTextParameter("area", DNTRequest.GetString("ac"));
                    req.AddTextParameter("sort", DNTRequest.GetString("sort"));
    
                    string rsp = client.GetResponse(req);
                    Parser parser = new Parser();//定义解析XML对象
                    parser.XmlToObject2<TaobaokeItem>(rsp, "taobaoke_items_get", "taobaoke_items/taobaoke_item", items);
                    SpaceTime.STCache.CreateCache("ItemList-" + cid + "_" + pageIndex, 24, items);
                    XmlDocument xml = new XmlDocument();
                    xml.LoadXml(rsp);
                    XmlElement root = xml.DocumentElement;
                    XmlNode xn = root.SelectSingleNode("//total_results");
                    if (xn != null)
                    {
                        SpaceTime.STCache.CreateCache("ItemListPage-" + cid + "_" + pageIndex, 24, xn.InnerText);
                        totalPageNum = xn.InnerText;
                    }
                }
                else
                {
                    items = SpaceTime.STCache.GetCache("ItemList-" + cid + "_" + pageIndex) as List<TaobaokeItem>;
                    totalPageNum = SpaceTime.STCache.GetCache("ItemListPage-" + cid + "_" + pageIndex).ToString();
                }
                hrrPage.RecordCount = int.Parse(totalPageNum);
                hrrPage.LinkPageUrl = Request.Url.ToString().Trim();
                dlItemList.DataSource = items;//&sc={2}&ec={3}
                dlItemList.DataBind();            
                if (items.Count < 1)
                {
                    wushuju = "<div class=\"tijiao\">很抱歉,没有找到与“<strong><font color=\"#FF0000\">" + DNTRequest.GetString("key") + "</font></strong>”相关的宝贝</div>";
                    hrrPage.Visible = false;
                }
                else
                    wushuju = "";
            }
            catch (Exception) 
            {
                Utils.ShowAlert("类型和关键字必须有一个", Page);
            }        
        }
  • 相关阅读:
    spring.jar的下载地址
    spring学习(1)
    供求信息网(2)
    编写学生增删改查系统时碰到的问题
    js中innerText/value/innerHTML三个属性的区别
    form的提交方式
    错误记录(1)
    供求信息网
    GYM 101673F(树计数)
    GYM 101673G(dp)
  • 原文地址:https://www.cnblogs.com/daixingqing/p/2768424.html
Copyright © 2011-2022 走看看