91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

cookie存儲對象信息

發布時間:2020-08-06 03:30:58 來源:網絡 閱讀:724 作者:liuwp1 欄目:編程語言

  最近看到某公司某項目中用于保存多個城市信息到cookie中的方法,該方法的邏輯是按時間順序記錄最近訪問過的三個城市的名字及id,邏輯包插入與含排重。插入與排重的代碼如下:

                 獲取cityid與cityname
   
                if (cityid == Utility.TypeParse.ToInt(CookieHelper.get("fwid1")))
                {
                   
                }
                else if (cityid == Utility.TypeParse.ToInt(CookieHelper.get("fwid2")))
                {
                    //CookieHelper.set("fwname3", CookieHelper.get("fwname2"), 10);
                    CookieHelper.set("fwname2", CookieHelper.get("fwname1"), 10);
                    CookieHelper.set("fwname1", HttpUtility.UrlEncode(cityname), 10);

                    //CookieHelper.set("fwid3", CookieHelper.get("fwid2"), 10);
                    CookieHelper.set("fwid2", CookieHelper.get("fwid1"), 10);
                    CookieHelper.set("fwid1", cityid.ToString(), 10);
                }
                else if (cityid == Utility.TypeParse.ToInt(CookieHelper.get("fwid3")))
                {
                    CookieHelper.set("fwname3", CookieHelper.get("fwname2"), 10);
                    CookieHelper.set("fwname2", CookieHelper.get("fwname1"), 10);
                    CookieHelper.set("fwname1", HttpUtility.UrlEncode(cityname), 10);

                    CookieHelper.set("fwid3", CookieHelper.get("fwid2"), 10);
                    CookieHelper.set("fwid2", CookieHelper.get("fwid1"), 10);
                    CookieHelper.set("fwid1", cityid.ToString(), 10);
                }
                else
                {
                    //沒有相等的
                    CookieHelper.set("fwname3", CookieHelper.get("fwname2"), 10);
                    CookieHelper.set("fwname2", CookieHelper.get("fwname1"), 10);
                    CookieHelper.set("fwname1", HttpUtility.UrlEncode(cityname), 10);

                    CookieHelper.set("fwid3", CookieHelper.get("fwid2"), 10);
                    CookieHelper.set("fwid2", CookieHelper.get("fwid1"), 10);
                    CookieHelper.set("fwid1", cityid.ToString(), 10);
                }

   點評:對于存儲的中文信息需要編碼,否則在部分瀏覽器無法存儲,這是這段代碼可以肯定的地方。但對于同類信息用到了六個cookie,反復的存取降低了代碼的效率,最好存儲在一個cookie中。另外即使考慮到數據量不到采用上面的方法,對于單個cookie最好先獲取cookie中的值到一個變量當中,在需要讀取cookie值的地方利用該變量即可,這樣可以降低對cookie的讀取次數。

   看完了上面的代碼,我們再來看看另外一塊比較合乎規范的代碼:

   /// <summary>
       /// 添加一對名稱地址到cookie中
       /// </summary>
       /// <param name="name">地址名稱</param>
       /// <param name="url">地址url</param>
       public static void AddKeyWord(string name, string url, string detailName="",int i = 0,string shortDomain)
        {
            List<KeyWord> kwLists = new List<KeyWord>();
            
            if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(url)||name.Trim().ToLower()=="null")
                return;
            HttpContext context = System.Web.HttpContext.Current;
            name = context.Server.UrlDecode(name);
            cookieName = baseCookieName + shortDomain;
            string kw = ClientCookie.Get(cookieName);
            if (name.IndexOf("%") > -1 || name.IndexOf("%") > -1)
            {
                name = context.Server.UrlDecode(name);
                if (name.IndexOf("%") > -1 || name.IndexOf("%") > -1)
                    return;
            }
            name = name.Replace(">", "&gt;");
            name = name.Replace("<", "&lt;");
            name = name.Replace(" ", "&nbsp;");
            name = name.Replace("\"", "&quot;");
            name = name.Replace("\'", "&#39;");
            name = name.Replace("\\", "\\\\");//對斜線的轉義
            name = name.Replace("\n", "\\n");
            name = name.Replace("\r", "\\r");
            if (!string.IsNullOrEmpty(kw))
            {
                try
                {
                    kwLists = JsonConvert.DeserializeObject<List<KeyWord>>(kw);
                }
                catch (Exception ex)
                {
                    LogerHelper.WriteMessegeError(kw, "解析出錯");
                }
                foreach (KeyWord myKey in kwLists)
                {
                    if (name.Trim()==myKey.name.Trim()||myKey.url == url.Trim().ToLower())
                    {
                        return;
                    }
                }
               
                if (kwLists.Count >= 3)
                {
                    kwLists.RemoveAt(0);
                }
              
            }

            kwLists.Add(new KeyWord() { name = name.Trim(), url = url.Trim(), sort = i, detailName = detailName });
      
                ClientCookie.Set(cookieName,JsonConvert.SerializeObject(kwLists),3,shortDomain);
           
            }

   點評:上面的方法將一個序列化的對象集合存儲在cookie當中,可以存儲更多的信息,也更加健壯。在開發過程中要不斷的學習,精益求精,否則即使工作時間再長,也只是增加了干活兒的熟練程度罷了,并不能獲得真正的能力提高。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汪清县| 靖安县| 汝城县| 鹤壁市| 岳普湖县| 新巴尔虎左旗| 安溪县| 万荣县| 拜城县| 遵义县| 广昌县| 甘洛县| 武义县| 阿合奇县| 靖州| 博白县| 文登市| 东丰县| 嵩明县| 景洪市| 贡嘎县| 宜兴市| 井冈山市| 高清| 扎兰屯市| 会理县| 犍为县| 丽江市| 丹巴县| 兴安县| 晋江市| 晋宁县| 霞浦县| 湖州市| 古浪县| 弥勒县| 河源市| 化德县| 冕宁县| 东乌珠穆沁旗| 乐亭县|