07.01.2013, 08:44
|
Аспирант
|
|
Регистрация: 04.01.2012
Сообщений: 78
|
|
как посчитать/узнать количество обновлений страницы
Всем привет!
надо сделать защиту от "дурака":
если в течение допустим минуты, юзверь любым способом(F5, ctrl+r, через ПКМ) обновил страницу более 5 раз, надо его вежливо послать на страничку с текстом, что нельзя так много раз обновлять страничку.
собственно вопрос, как узнать, была ли обновлена страница?
|
|
07.01.2013, 10:12
|
|
☽
|
|
Регистрация: 07.01.2011
Сообщений: 254
|
|
При загрузке страницы записывать текущее время и счетчик в cookie/localStorage. Следующий раз сравнивать с ранее записанным.
А вообще, обычно не принято указывать пользователю, можно или нет ему обновлять страницу и т.д.: это его исключительное право.
|
|
07.01.2013, 10:29
|
Аспирант
|
|
Регистрация: 04.01.2012
Сообщений: 78
|
|
Сообщение от Amphiluke
|
При загрузке страницы записывать текущее время и счетчик в cookie/localStorage. Следующий раз сравнивать с ранее записанным.
А вообще, обычно не принято указывать пользователю, можно или нет ему обновлять страницу и т.д.: это его исключительное право.
|
точно! как я сам не сообразил. но тогда уж лучше в SessionStorage? не?
я знаю что не принято, но полудурков хватает, которые фигней маются. я для примера написал 5 раз - это конечно мало, так то конечно не менее 20 ставить.
|
|
07.01.2013, 10:30
|
|
☽
|
|
Регистрация: 07.01.2011
Сообщений: 254
|
|
Сообщение от cOAPerator
|
но тогда уж лучше в SessionStorage? не?
|
Да, конечно.
|
|
07.01.2013, 11:36
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Вообще, такие вещи лучше на стороне сервера делать. Клиентские ограничения легко обходятся (если это важно)
|
|
07.01.2013, 12:32
|
Аспирант
|
|
Регистрация: 04.01.2012
Сообщений: 78
|
|
да можно, но это не критично
|
|
07.01.2013, 13:58
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Amphiluke
|
При загрузке страницы записывать текущее время и счетчик в cookie/localStorage. Следующий раз сравнивать с ранее записанным.
|
Не подходит - к примеру он вертаецо периодически на главную.
Проще всего счетчик +время + адрес записывать в в window.name и обнулять при сходе с предыдущего адреса на новый,
Хотя ДДос делатся не руками, и с отключенными скриптами
Последний раз редактировалось Deff, 07.01.2013 в 14:22.
|
|
07.01.2013, 14:24
|
Аспирант
|
|
Регистрация: 04.01.2012
Сообщений: 78
|
|
Сообщение от Deff
|
Проще всего счетчик +время + адрес записывать в в window.name и обнулять при сходе с предыдущего адреса на новый,
Хотя ДДос делатся не руками, и с отключенными скриптами
|
ну от ДДос это не смасет, это я знаю, а от идиота держащего нажатой клавишу F5 вполне)
а зачем в window.name записывать? это же имя страницы вроде...
|
|
07.01.2013, 16:51
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
<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>
Последний раз редактировалось Deff, 07.01.2013 в 18:12.
|
|
|
|