Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.01.2013, 08:44
Аспирант
Отправить личное сообщение для cOAPerator Посмотреть профиль Найти все сообщения от cOAPerator
 
Регистрация: 04.01.2012
Сообщений: 78

как посчитать/узнать количество обновлений страницы
Всем привет!
надо сделать защиту от "дурака":
если в течение допустим минуты, юзверь любым способом(F5, ctrl+r, через ПКМ) обновил страницу более 5 раз, надо его вежливо послать на страничку с текстом, что нельзя так много раз обновлять страничку.

собственно вопрос, как узнать, была ли обновлена страница?
Ответить с цитированием
  #2 (permalink)  
Старый 07.01.2013, 10:12
Аватар для Amphiluke
   ☽
Отправить личное сообщение для Amphiluke Посмотреть профиль Найти все сообщения от Amphiluke
 
Регистрация: 07.01.2011
Сообщений: 254

При загрузке страницы записывать текущее время и счетчик в cookie/localStorage. Следующий раз сравнивать с ранее записанным.
А вообще, обычно не принято указывать пользователю, можно или нет ему обновлять страницу и т.д.: это его исключительное право.
Ответить с цитированием
  #3 (permalink)  
Старый 07.01.2013, 10:29
Аспирант
Отправить личное сообщение для cOAPerator Посмотреть профиль Найти все сообщения от cOAPerator
 
Регистрация: 04.01.2012
Сообщений: 78

Сообщение от Amphiluke Посмотреть сообщение
При загрузке страницы записывать текущее время и счетчик в cookie/localStorage. Следующий раз сравнивать с ранее записанным.
А вообще, обычно не принято указывать пользователю, можно или нет ему обновлять страницу и т.д.: это его исключительное право.
точно! как я сам не сообразил. но тогда уж лучше в SessionStorage? не?

я знаю что не принято, но полудурков хватает, которые фигней маются. я для примера написал 5 раз - это конечно мало, так то конечно не менее 20 ставить.
Ответить с цитированием
  #4 (permalink)  
Старый 07.01.2013, 10:30
Аватар для Amphiluke
   ☽
Отправить личное сообщение для Amphiluke Посмотреть профиль Найти все сообщения от Amphiluke
 
Регистрация: 07.01.2011
Сообщений: 254

Сообщение от cOAPerator
но тогда уж лучше в SessionStorage? не?
Да, конечно.
Ответить с цитированием
  #5 (permalink)  
Старый 07.01.2013, 11:36
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Вообще, такие вещи лучше на стороне сервера делать. Клиентские ограничения легко обходятся (если это важно)
Ответить с цитированием
  #6 (permalink)  
Старый 07.01.2013, 12:32
Аспирант
Отправить личное сообщение для cOAPerator Посмотреть профиль Найти все сообщения от cOAPerator
 
Регистрация: 04.01.2012
Сообщений: 78

да можно, но это не критично
Ответить с цитированием
  #7 (permalink)  
Старый 07.01.2013, 13:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Amphiluke
При загрузке страницы записывать текущее время и счетчик в cookie/localStorage. Следующий раз сравнивать с ранее записанным.
Не подходит - к примеру он вертаецо периодически на главную.

Проще всего счетчик +время + адрес записывать в в window.name и обнулять при сходе с предыдущего адреса на новый,
Хотя ДДос делатся не руками, и с отключенными скриптами

Последний раз редактировалось Deff, 07.01.2013 в 14:22.
Ответить с цитированием
  #8 (permalink)  
Старый 07.01.2013, 14:24
Аспирант
Отправить личное сообщение для cOAPerator Посмотреть профиль Найти все сообщения от cOAPerator
 
Регистрация: 04.01.2012
Сообщений: 78

Сообщение от Deff Посмотреть сообщение
Проще всего счетчик +время + адрес записывать в в window.name и обнулять при сходе с предыдущего адреса на новый,
Хотя ДДос делатся не руками, и с отключенными скриптами
ну от ДДос это не смасет, это я знаю, а от идиота держащего нажатой клавишу F5 вполне)

а зачем в window.name записывать? это же имя страницы вроде...
Ответить с цитированием
  #9 (permalink)  
Старый 07.01.2013, 16:51
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 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.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
Постоянное обновление страницы. Как? ratt Общие вопросы Javascript 9 13.10.2010 02:55
Как разделять страницы при выводе отчета ilshat Events/DOM/Window 7 10.12.2009 10:24
Как выдавать ошибку при сбросе загрузки страницы? AvaGet Общие вопросы Javascript 2 11.12.2008 19:04
Как переместиться в начало страницы или к закладке? f_gor Общие вопросы Javascript 2 03.09.2008 23:00