規定時間內,將瀏覽次數增加且只增加一次

假設問題:10分鐘之內只能增加一次(程序的核心)

問題背景:10分鐘之內點擊一個帶資源ID值的鏈接,增加一次瀏覽次數寫入數據庫

可以判斷的條件有:  每點擊一次設置一個session,其值和鍵爲剛纔點擊的資源ID

分析:10分鐘由cookie的過期時間設定(過期了即爲空) 沒過期的時候(不爲空時)增加一次

1次由session的keys屬性(集合類型)是否已經包含(將keys集合添加到泛型列表List<string>,然後調用string暴漏的Contains方法)剛纔的資源ID決定:已經包含,不增加次數;不包含,則增加一次

技巧:cookie和session的鍵都是圈子ID

總結:增加1的情況 { cookie不爲空,session不包含圈子ID ;  判斷前給cookie賦值,判斷後給session賦值 }

protect void UpdateViewNum(string SourceID)

{

    List<string> sessionKeys = new List<string>();        

    for (int i = 0; i < Session.Keys.Count; i++)        

    {            

      sessionKeys.Add(Session.Keys.Get(i)); //獲得每個鍵添加到泛型列表中,以調用Contains方法判斷剛纔是否有點擊過 

     }

    Resposne.Cookies[SourceID].Value = SourceID;        

    Resposne.Cookies[SourceID].Expires = DateTime.Now.AddMinutes(10);//設置cookie過期時間

        if (!sessionKeys.Contains(SourceID) && Request.Cookies[SourceID] != null)        

    {            

        Session[resGuid] = resGuid;            

        類的實例.UpdateVisitNum(resGuid);            

        類的實例.InsertBaseStatistics(……Convert.ToInt32(SourceID));

     }

}

如果大家有更好的辦法,請分享;如上面有不妥,請指出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章