IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Ajax DOS (http://www.imho.ws/showthread.php?t=107079)

Псих 15.08.2006 17:02

Ajax и нагрузка на сервер
 
Я тут подумал ...
Если у меня есть поле ввода, которое проверяет занято ли имя по событию
onChage, получается если написать бота, который будет прыгать между полями ввода туда обратно, получится своеобразный DOS для мускуля(ну или просто нагрузка на сервер).
Тоже самое касается кнопки "проверить имя".

Из вариантов решений я вижу только вести табличку с графой lastQueryIP.
Если айпи последнего юзера запрашующего проверку == ip нынешнего юзера, то не проводить запрос, но тут новый запрос вырисовуется...

Либо можно на стороне клиента ограничивать с помощью js...

А кто-то знает более интерестные способы?

RaZEr 15.08.2006 17:09

А причём здесь AJAX?

Псих 15.08.2006 17:23

Цитата:

RaZEr:
А причём здесь AJAX?
Угу, топ туповато назвал немного.
Дело не в в аякс.. а в том, что пользователю проще нагрузку на mysql .. просто туда сюда перемещаясь между полями ввода

RaZEr 15.08.2006 17:30

Так можно создавать нагрузку на практически любом LAMP скрипте. Единственное чем это можно пробовать лечить - кэширующий сервер. Хотя если речь о единичной ресурсоёмкой операции сойдёт обыкновенная антибот-картинка.

Face 15.08.2006 17:50

Поставь тайм-аут: если 1 секунду пользователь не двигает мышку, не нажимает клавишы, то есть ничего не делает - делать AJAX-запрос на существование имени

Псих 16.08.2006 10:55

Face
От этого увеличится сложность сделать лишнюю нагрузку на сервер?

RaZEr
Предлагаешь с загрузкой страницы подгружать все имена в массив? а потом просто проверять?

/7y3uK 16.08.2006 12:32

проверять имеет смысл начиная с трех букв (или больше), после чего можно, действительно, выгрузить AJAXом в массив и проверять уже тама...

Псих 16.08.2006 12:58

/7y3uK
Если в бд 200 000 - 1 000 000 записей.. то и поиск по массиву будет не слабый и результат запроса по скорости тоже не хилый.

Hubbitus 24.08.2006 12:13

Цитата:

Псих:
Если у меня есть поле ввода, которое проверяет занято ли имя по событию
onChage, получается если написать бота, который будет прыгать между полями ввода туда обратно, получится своеобразный DOS для мускуля(ну или просто нагрузка на сервер).
Погоди, погоди. Если поле не меняется, а только получает фокус, то и события onChage не будет, не будет и нагрузки. К тому же, просто надо кешировать в скрипте имя пользователя которое уже получалось с ервера, и результат проверки, и не запрашивать его в данном сеансе снова, вот и все.

/7y3uK 24.08.2006 15:45

Цитата:

Сообщение от Псих
/7y3uK
Если в бд 200 000 - 1 000 000 записей.. то и поиск по массиву будет не слабый и результат запроса по скорости тоже не хилый.

ну автокомплит штука ресурсожрущая в любом случае. Как показывает практика, тут надо ставить разумные ограничения, к примеру начинать подгружать данные для автокомплита начиная как можно с более дальней от начала буквы, во вторых ни кто не говорит, что надо подгружать сразу все записи, которые начинаются с этих первых букв. В лучших домах подгружают, скажем, первые 50, а на 51 строку ставят многоточие. Если выбирается многоточие, то подгружается остальные 50... А тут уже выбор за тем как ты хочешь писать скрипт, можно просто каждый раз аппендить по 50 штук, но это будет все больше и больше жрать ресурсы, а можно сделать на второй итерации многоточие и в первой строке...


Часовой пояс GMT +4, время: 22:36.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.