原理:spa
利用Queque的先進先出性質,隊列
每次訪問 Page 時 Enqueue 當前時間,當 Queue 元素的個數不知足指定的限制次數時,可繼續訪問,退出判斷;原理
不然取[Peek]隊列首元素 ,判斷當前時間與 取出的時間比較,若間隔大於指定時間,則說明特定時間內訪問次數沒有達到限制值,彈出[Dequeue]首元素,退出判斷。不然判斷間隔是否小於指定時間,如果不能夠。若否能夠繼續訪問。queue
僞代碼:im
if (queue.Count < num)時間
then queque.Enqueue(DataTime.Now.Ticks/1000000) return 正常訪問time
time1=queque.Peekreturn
now=DataTime.Now.Ticks/1000000
queque.Enqueue(now)
if(now-time1>指定時間)
then queue.Dequeue
return now-time1<指定時間
return