как посчитать/узнать количество обновлений страницы
Всем привет!
надо сделать защиту от "дурака": если в течение допустим минуты, юзверь любым способом(F5, ctrl+r, через ПКМ) обновил страницу более 5 раз, надо его вежливо послать на страничку с текстом, что нельзя так много раз обновлять страничку. собственно вопрос, как узнать, была ли обновлена страница? |
При загрузке страницы записывать текущее время и счетчик в cookie/localStorage. Следующий раз сравнивать с ранее записанным.
А вообще, обычно не принято указывать пользователю, можно или нет ему обновлять страницу и т.д.: это его исключительное право. |
Цитата:
я знаю что не принято, но полудурков хватает, которые фигней маются. я для примера написал 5 раз - это конечно мало, так то конечно не менее 20 ставить. |
Цитата:
|
Вообще, такие вещи лучше на стороне сервера делать. Клиентские ограничения легко обходятся (если это важно)
|
да можно, но это не критично
|
Цитата:
Проще всего счетчик +время + адрес записывать в в window.name и обнулять при сходе с предыдущего адреса на новый, Хотя ДДос делатся не руками, и с отключенными скриптами |
Цитата:
а зачем в window.name записывать? это же имя страницы вроде... |
<script type="text/javascript"> var d=new Date().getTime(); var a=document.URL; var c=window.name; N_max = 12 //максимальное число рефрешов страницы подряд за время TimeMin TimeMin = 60000;//Время действия условия var d0=d; var i=1; if(c!=''){var arr=c.split(","); if(arr.length==4&&arr[2]==a){i=parseInt(arr[3])+1; //alert(i) } else window.name=(d+","+d0+","+a+","+1); } else window.name=(d+","+d0+","+a+","+1); if(i>1){d0=parseInt(window.name.split(",")[1])} if(isNaN(i)||isNaN(d0)){i=1;d0=d;} //alert(window.name.split(",")[1]) if( i >=N_max){ if(d-d0<= (TimeMin/N_max)*i){alert('Хорош обновлять страницу!!!');window.name='';window.location="http://qps.ru/H7rqf"} window.name='';d0=d;i=1; } window.name=(d+","+d0+","+a+","+i); //alert(window.name); </script> |
Часовой пояс GMT +3, время: 00:06. |