![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
28.06.2011, 07:19
|
Интересующийся
|
|
Регистрация: 12.06.2011
Сообщений: 14
|
|
javascript: действие выполнено слишком быстро
Как написать скрипт, который будет выдавать alert при быстром нажатии на ссылки? Хоть алгоритм подскажите или дайте ссылку на статью какую ![](https://javascript.ru/forum/images/smilies/smile.gif) Раньше в ВК было такое, сейчас - хз
Просто у меня всё на аяксе работает и хотелось бы хоть как-то запретить пользователям "баловаться" с сайтом (т.е. не давать загружать одно и то же очень быстро).
Последний раз редактировалось Jude, 28.06.2011 в 07:23.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
28.06.2011, 09:16
|
![Аватар для ksa](https://javascript.ru/forum/image.php?u=8616&dateline=1282216923) |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,237
|
|
Сообщение от Jude
|
Хоть алгоритм подскажите
|
Как вариант, фиксировать время нажатия в некую переменную и приследующем нажатии проверять сколько прошло времени...
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
28.06.2011, 09:24
|
![Аватар для Gozar](https://javascript.ru/forum/image.php?u=11&dateline=1402119167) |
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от Jude
|
т.е. не давать загружать одно и то же очень быстро
|
Чтобы не давать загружать одно и тоже нужно кэшировать результат и проверять его наличие в случае наличия не грузить с сервера. Запретить скачивать одно и тоже одним и тем же человеком можно только на сервере и не на 100%.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
28.06.2011, 09:44
|
Интересующийся
|
|
Регистрация: 12.06.2011
Сообщений: 14
|
|
Цитата:
|
Чтобы не давать загружать одно и тоже нужно кэшировать результат и проверять его наличие в случае наличия не грузить с сервера. Запретить скачивать одно и тоже одним и тем же человеком можно только на сервере и не на 100%.
|
Я сделал кеширование на стороне сервера, т.е. при заходе на страницу проверяется время последнего изменения файла (если он есть; + это позволяет отдавать кеш-файлы всем пользователям и хранить их достаточно долго) и этот же кеш-файл отдаётся пользователям, а если кеш-файла нету, то пользователь скачивает страничку и тем-самым создаётся кеш-файл.
Но дело даже не в этом, ведь если пользователь будет "бегать" по ссылкам, то нагрузка на сервер будет вполне хорошая, поэтому и нужно написать скрипт (см. первый пост). Каким образом можно кешировать на стороне клиента? localStorage не подходит, я не смог всё это объединить
Цитата:
|
Как вариант, фиксировать время нажатия в некую переменную и приследующем нажатии проверять сколько прошло времени...
|
Спасибо, попробую написать ![](https://javascript.ru/forum/images/smilies/smile.gif)
Последний раз редактировалось Jude, 28.06.2011 в 09:54.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
28.06.2011, 09:45
|
Интересующийся
|
|
Регистрация: 12.06.2011
Сообщений: 14
|
|
Цитата:
|
Чтобы не давать загружать одно и тоже нужно кэшировать результат и проверять его наличие в случае наличия не грузить с сервера. Запретить скачивать одно и тоже одним и тем же человеком можно только на сервере и не на 100%.
|
Я сделал кеширование на стороне сервера, т.е. при заходе на страницу проверяется время последнего изменения файла (если он есть; + это позволяет отдавать кеш-файлы всем пользователям и хранить их достаточно долго) и этот же кеш-файл отдаётся пользователям, а если кеш-файла нету, то пользователь скачивает страничку и тем-самым создаётся кеш-файл.
Но дело даже не в этом, ведь если пользователь будет "бегать" по ссылкам, то нагрузка на сервер будет вполне хорошая, поэтому и нужно написать скрипт (см. первый пост). Можно так же включить кеширование на стороне клиента, но с этим пока тестирую.
Цитата:
|
Как вариант, фиксировать время нажатия в некую переменную и приследующем нажатии проверять сколько прошло времени...
|
Хорошо, попробую написать ![](https://javascript.ru/forum/images/smilies/smile.gif)
Последний раз редактировалось Jude, 28.06.2011 в 10:10.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
28.06.2011, 12:02
|
![Аватар для Gozar](https://javascript.ru/forum/image.php?u=11&dateline=1402119167) |
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Jude,
Я ни слова не сказал, что кэшировать нужно на стороне сервера. Разве пользователь будет кликать на стороне сервера?
display:none
Сообщение от ksa
|
Как вариант, фиксировать время нажатия в некую переменную и приследующем нажатии проверять сколько прошло времени...
|
Да запрети просто доступ к сайту и всё. Пусть его никто не видит. Хуже вряд-ли можно придумать, чем сайт реагирующий на клики через раз, а ну да можно ещё пароль просить ввести каждые 30 секунд.
Ваша проблема похожа на надуманную.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
28.06.2011, 12:13
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от Jude
|
Просто у меня всё на аяксе работает и хотелось бы хоть как-то запретить пользователям "баловаться" с сайтом (т.е. не давать загружать одно и то же очень быстро).
|
дайте пример. кликание на "новости" вконтакте?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
28.06.2011, 12:24
|
![Аватар для ksa](https://javascript.ru/forum/image.php?u=8616&dateline=1282216923) |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,237
|
|
Сообщение от Gozar
|
Хуже вряд-ли можно придумать, чем сайт реагирующий на клики через раз
|
Согласен...
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
28.06.2011, 12:51
|
Интересующийся
|
|
Регистрация: 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>
Но что-то это очень ужасно выглядит
Цитата:
|
дайте пример. кликание на "новости" вконтакте?
|
А где там? Выше скрипт посмотрите, поймёте
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
28.06.2011, 21:00
|
![Аватар для Gozar](https://javascript.ru/forum/image.php?u=11&dateline=1402119167) |
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от Jude
|
В общем, написал какую-то ересь:
|
Ничего кроме ереси вы написать не сможете, т.к. вы поставили себе задачу написать ересь.
Представим на секунду, что я тот человек, который зашел на ваш сайт и который решил поиграть в быстрые клики т.к. меня взбесило то что "тупорылый сайт" указывает мне что делать и с какой скоростью кликать на ссылки. Я включаю мозг и за две минуты клепаю скрипт, который ajax-ами дергает одинаковую инфу с вашего сервера, не кликает на ссылки, а дергает запрос. Ваша ересь не сработает.
ps: Никакого LocalStorage не нужно чтобы сделать у одного блока display:none/block <--- кэш, т.к. запрос уже был, проверяем если блок есть, то инфу не дергаем, нет блока, дергаем
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Последний раз редактировалось Gozar, 28.06.2011 в 21:12.
Причина: ps:
|
|
|
|