原理: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