Попытка установить соединение была безуспешной

aaachilov

Новичок
Приветствую!
Вот такая штука ко мне подкралась.
Не знал в какой раздел лучше написать, но так как это дело происходит при работе с ajax....

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

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


Впринципе примерно ясно что происходит, но не ясно как этого избежать

Посоветуйте, может кто сталкивался...
Заранее благодарю!
 

sobachnik

Новичок
Считать, сколько раз пользователь нажал на кнопки в единицу времени. И если больше двух-трёх раз в секунду - то всё, чёрный экран и надпись "Вы сломали свой компьютер..."
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Твой сервер обладает искуственным интелектом.
И он просто делает вот это
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
если часто быстро и усердно тыкать по пользователям
А если серьезно, то по клику, возьми и
1. отключи "соседние" линки, или
2. "накрой" все дивом по размеру страницы (что не позволит "тыкать по линкам" дальше), или
3. вообще убери нафиг ссылки (как сделали чуваки в нашем Приват 24)

Напиши меседж "запрос обрабатывается"
Когда пришел ответ, возвращай в первоначальное состояние.
 
  • Like
Реакции: KorP

aaachilov

Новичок
— и что же?
baev вообще не понял Вашего вопроса - ясно дело что сервер ложится
Одной из причин такой нагрузки было то что каждое сообщение парсится через file_get_contents и адреса на файл у меня были прописаны не верно, черес url - в итоге при выводе сообщений при каждом пропарсивании сервер обращался сам к себе через http запрос в итоге выкидывал 503 или срабатывал max_execution_time. Да и на сколько я понимаю сервер тоже имеет лимит обращений одного юзера. и я пока специально не сделал разбивку по количеству выводов(так сказать постраничный вывод) и при каждом нажатии на линк выводилось 300-500 сообщений - соответственно 300-500 обащений к файлу шаблона + это все через ajax + по 2-3 нажатия на линк и выполнение нового запроса в секунду и так по кругу пока он не втавал.
Максимально оптимизировав сам код, время на то чтобы положить сервер стало уходить в два раза больше, но при усердном обращении к нему все таки возможно.
Решил вопрос так: Пока не пишёл ответ с сервера блокирую все линки в списке. Когда разобью на на постраничный вывод думаю этого эфекта не будет заметно.

Сейчас страница с выводом 1000 записей генерируется за 0.348 секунд на локалке и в среднем за 0.048 на хостинге при отключенном кэше. Это нормальная скорость?
 

baev

‹°°¬•
Команда форума
ясно дело что сервер ложится
— мне — неясно.
Ошибку выдаёт браузер. А internet explorer, к примеру, может подобные сообщения выдавать и когда «ложится» компьютер клиента или канал «забит».
Вы над текстом сообщения помедитируйте: «от другого компьютера за требуемое время не получен нужный отклик» <— это клиент не получил, а не «сервер не отправил».

В случае с аяксом фанатично запущенная куча javascript'ов быстрее положат браузер, чем сервер.
 

aaachilov

Новичок
baev да - чего то я об браузерах не подумал)))
Возможно Вы правы - но клиент бы получил если бы сервер ему отправил. Просто я конечно извеняюсь что сразу не выложил - но у меня просто ошибки не выводятся на экран а пишутся в журнал. Ошибки следующие: max_execution_time 30 либо file_get_contents файла который отвечает за шаблон сообщения.

При этом браузер не виснет и работает и другие запросы и аяксовые в том числе работают. При чём пробывал и на слабеньком ноуте и на этой машине digitalrazor level 4
в различных браузерах - ещё не один браузер не повис.
Сейчас debug в зубы и вперёд тестить)))
 

baev

‹°°¬•
Команда форума
пишутся в журнал. Ошибки следующие: max_execution_time 30 либо file_get_contents
— вот об том и речь: при чём тут, вообще, Ваше первое сообщение в этой теме?
 

aaachilov

Новичок
Я уже извенился - за не полность предоставленной информации.
Если честно - просто с головы вылетело посмотреть есть ли ошибки, а когда посмотрел уже и вопрос решил.
Запомню на будущее,ещё раз извеняюсь.

фанатично запущенная куча javascript'ов быстрее положат браузер
А ещё такой вопрос - хотя не для этого аздела,но если не сложно подскажите - вот через мозиловский дебаг смотрю - получается что работа javascript функции не прерывается если к ней ещё раз обращаться, а одна и таже функция выполняется паралельно множество раз. Я верно понял? Я просто думал что при повторном вызове она прерывается и начинается заново...
 

HEm

Сетевой бобер
оффтопик:
мозилловский дебаг у меня весьма часто например для jQuery-эффектов вызывает такую ситуацию, что вешаешь брейкпойнт, смотришь что там пару шагов, жмешь дальше f8 - а эффект не срабатывает и вообще отказывается дальше не то что js дебажить, но даже страница не обновляется - убиваешь вкладку, открываешь новую, вставляешь там тот же урл, и все пашет заново
 
Сверху