原理:
利用Queque的先进先出性质,每次访问 Page 时 Enqueue 当前时间,當 Queue 元素的个数不满足指定的限制条件时,可继续访问;否则 Peek Queue,判断当前时间与 Peek 的值比较,若间隔大于指定时间,则说明访问次数达到了限制值所需时间间隔大于限制值,Dequeue一个元素,以便下次Enqueue。若时间间隔小于指定的时间,则不允许继续访问。
伪代码:
if (queue.Count < num)
then queque.Enqueue(DataTime.Now.Ticks/1000000) return 正常访问
time1=queque.Peek
now=DataTime.Now.Ticks/1000000
queque.Enqueue(now)
if(now-time1>指定时间)
then queue.Dequeue
return now-time1<指定时间
return