Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.06.2011, 07:19
Интересующийся
Отправить личное сообщение для Jude Посмотреть профиль Найти все сообщения от Jude
 
Регистрация: 12.06.2011
Сообщений: 14

javascript: действие выполнено слишком быстро
Как написать скрипт, который будет выдавать alert при быстром нажатии на ссылки? Хоть алгоритм подскажите или дайте ссылку на статью какую Раньше в ВК было такое, сейчас - хз
Просто у меня всё на аяксе работает и хотелось бы хоть как-то запретить пользователям "баловаться" с сайтом (т.е. не давать загружать одно и то же очень быстро).

Последний раз редактировалось Jude, 28.06.2011 в 07:23.
Ответить с цитированием
  #2 (permalink)  
Старый 28.06.2011, 09:16
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,237

Сообщение от Jude
Хоть алгоритм подскажите
Как вариант, фиксировать время нажатия в некую переменную и приследующем нажатии проверять сколько прошло времени...
Ответить с цитированием
  #3 (permalink)  
Старый 28.06.2011, 09:24
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Jude Посмотреть сообщение
т.е. не давать загружать одно и то же очень быстро
Чтобы не давать загружать одно и тоже нужно кэшировать результат и проверять его наличие в случае наличия не грузить с сервера. Запретить скачивать одно и тоже одним и тем же человеком можно только на сервере и не на 100%.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #4 (permalink)  
Старый 28.06.2011, 09:44
Интересующийся
Отправить личное сообщение для Jude Посмотреть профиль Найти все сообщения от Jude
 
Регистрация: 12.06.2011
Сообщений: 14

Цитата:
Чтобы не давать загружать одно и тоже нужно кэшировать результат и проверять его наличие в случае наличия не грузить с сервера. Запретить скачивать одно и тоже одним и тем же человеком можно только на сервере и не на 100%.
Я сделал кеширование на стороне сервера, т.е. при заходе на страницу проверяется время последнего изменения файла (если он есть; + это позволяет отдавать кеш-файлы всем пользователям и хранить их достаточно долго) и этот же кеш-файл отдаётся пользователям, а если кеш-файла нету, то пользователь скачивает страничку и тем-самым создаётся кеш-файл.
Но дело даже не в этом, ведь если пользователь будет "бегать" по ссылкам, то нагрузка на сервер будет вполне хорошая, поэтому и нужно написать скрипт (см. первый пост). Каким образом можно кешировать на стороне клиента? localStorage не подходит, я не смог всё это объединить
Цитата:
Как вариант, фиксировать время нажатия в некую переменную и приследующем нажатии проверять сколько прошло времени...
Спасибо, попробую написать

Последний раз редактировалось Jude, 28.06.2011 в 09:54.
Ответить с цитированием
  #5 (permalink)  
Старый 28.06.2011, 09:45
Интересующийся
Отправить личное сообщение для Jude Посмотреть профиль Найти все сообщения от Jude
 
Регистрация: 12.06.2011
Сообщений: 14

Цитата:
Чтобы не давать загружать одно и тоже нужно кэшировать результат и проверять его наличие в случае наличия не грузить с сервера. Запретить скачивать одно и тоже одним и тем же человеком можно только на сервере и не на 100%.
Я сделал кеширование на стороне сервера, т.е. при заходе на страницу проверяется время последнего изменения файла (если он есть; + это позволяет отдавать кеш-файлы всем пользователям и хранить их достаточно долго) и этот же кеш-файл отдаётся пользователям, а если кеш-файла нету, то пользователь скачивает страничку и тем-самым создаётся кеш-файл.
Но дело даже не в этом, ведь если пользователь будет "бегать" по ссылкам, то нагрузка на сервер будет вполне хорошая, поэтому и нужно написать скрипт (см. первый пост). Можно так же включить кеширование на стороне клиента, но с этим пока тестирую.
Цитата:
Как вариант, фиксировать время нажатия в некую переменную и приследующем нажатии проверять сколько прошло времени...
Хорошо, попробую написать

Последний раз редактировалось Jude, 28.06.2011 в 10:10.
Ответить с цитированием
  #6 (permalink)  
Старый 28.06.2011, 12:02
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Jude,
Я ни слова не сказал, что кэшировать нужно на стороне сервера. Разве пользователь будет кликать на стороне сервера?
display:none


Сообщение от ksa Посмотреть сообщение
Как вариант, фиксировать время нажатия в некую переменную и приследующем нажатии проверять сколько прошло времени...
Да запрети просто доступ к сайту и всё. Пусть его никто не видит. Хуже вряд-ли можно придумать, чем сайт реагирующий на клики через раз, а ну да можно ещё пароль просить ввести каждые 30 секунд.

Ваша проблема похожа на надуманную.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #7 (permalink)  
Старый 28.06.2011, 12:13
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Jude Посмотреть сообщение
Просто у меня всё на аяксе работает и хотелось бы хоть как-то запретить пользователям "баловаться" с сайтом (т.е. не давать загружать одно и то же очень быстро).
дайте пример. кликание на "новости" вконтакте?
Ответить с цитированием
  #8 (permalink)  
Старый 28.06.2011, 12:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,237

Сообщение от Gozar
Хуже вряд-ли можно придумать, чем сайт реагирующий на клики через раз
Согласен...
Ответить с цитированием
  #9 (permalink)  
Старый 28.06.2011, 12:51
Интересующийся
Отправить личное сообщение для Jude Посмотреть профиль Найти все сообщения от Jude
 
Регистрация: 12.06.2011
Сообщений: 14

Цитата:
Я ни слова не сказал, что кэшировать нужно на стороне сервера.
Это уже было сделано давно на случай, если у пользователя кеш будет отключен и для снятия нагрузки на сервер.
Цитата:
Да запрети просто доступ к сайту и всё. Пусть его никто не видит. Хуже вряд-ли можно придумать, чем сайт реагирующий на клики через раз
Почему через раз? Каждые 0,5-0,8 секунд отлавливать быстрые клики. Согласитесь, быстрее 1 секунды просто так не кликают по сайту

В общем, написал какую-то ересь:
function quickMouse()
{
	var date = new Date, s = date.getSeconds(),
		storage = globalStorage[document.domain],
		x = s-parseInt(storage['s']);
	storage['s'] = s;
	if(x<1)alert('Nah!');
}

<a href="/" onclick="quickMouse(); return false;">Клац</a>
<a href="/" onclick="quickMouse(); return false;">Клац</a>

Но что-то это очень ужасно выглядит
Цитата:
дайте пример. кликание на "новости" вконтакте?
А где там? Выше скрипт посмотрите, поймёте
Ответить с цитированием
  #10 (permalink)  
Старый 28.06.2011, 21:00
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Jude Посмотреть сообщение
В общем, написал какую-то ересь:
Ничего кроме ереси вы написать не сможете, т.к. вы поставили себе задачу написать ересь.

Представим на секунду, что я тот человек, который зашел на ваш сайт и который решил поиграть в быстрые клики т.к. меня взбесило то что "тупорылый сайт" указывает мне что делать и с какой скоростью кликать на ссылки. Я включаю мозг и за две минуты клепаю скрипт, который ajax-ами дергает одинаковую инфу с вашего сервера, не кликает на ссылки, а дергает запрос. Ваша ересь не сработает.

ps: Никакого LocalStorage не нужно чтобы сделать у одного блока display:none/block <--- кэш, т.к. запрос уже был, проверяем если блок есть, то инфу не дергаем, нет блока, дергаем
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 28.06.2011 в 21:12. Причина: ps:
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34