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

aaachilov

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

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

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


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

Посоветуйте, может кто сталкивался...
Заранее благодарю!
 
Считать, сколько раз пользователь нажал на кнопки в единицу времени. И если больше двух-трёх раз в секунду - то всё, чёрный экран и надпись "Вы сломали свой компьютер..."
 
Твой сервер обладает искуственным интелектом.
И он просто делает вот это
0_8a69e_188937df_orig
 
если часто быстро и усердно тыкать по пользователям
А если серьезно, то по клику, возьми и
1. отключи "соседние" линки, или
2. "накрой" все дивом по размеру страницы (что не позволит "тыкать по линкам" дальше), или
3. вообще убери нафиг ссылки (как сделали чуваки в нашем Приват 24)

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

Сейчас страница с выводом 1000 записей генерируется за 0.348 секунд на локалке и в среднем за 0.048 на хостинге при отключенном кэше. Это нормальная скорость?
 
ясно дело что сервер ложится
— мне — неясно.
Ошибку выдаёт браузер. А internet explorer, к примеру, может подобные сообщения выдавать и когда «ложится» компьютер клиента или канал «забит».
Вы над текстом сообщения помедитируйте: «от другого компьютера за требуемое время не получен нужный отклик» <— это клиент не получил, а не «сервер не отправил».

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

При этом браузер не виснет и работает и другие запросы и аяксовые в том числе работают. При чём пробывал и на слабеньком ноуте и на этой машине digitalrazor level 4
в различных браузерах - ещё не один браузер не повис.
Сейчас debug в зубы и вперёд тестить)))
 
пишутся в журнал. Ошибки следующие: max_execution_time 30 либо file_get_contents
— вот об том и речь: при чём тут, вообще, Ваше первое сообщение в этой теме?
 
Я уже извенился - за не полность предоставленной информации.
Если честно - просто с головы вылетело посмотреть есть ли ошибки, а когда посмотрел уже и вопрос решил.
Запомню на будущее,ещё раз извеняюсь.

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