LINUX.ORG.RU

Зачем нужен таймаут на стороне js при отправке форм?

 , ,


0

2

По-моему его надо убрать. Если запрос висит - пусть висит, вдруг он через 10 минут всё-таки сделается, а сайтовые скрипты этот успешный результат уже игнорят, написав ещё раньше timeout красными буквами. В итоге я, увидев что подключение к инету отвисло и не зная что отправленный запрос таки вернул успех, отправляю то же сообщение второй раз и приходится его удалять.

В любом случае, какой смысл от этого таймаута я не понимаю. Если коннект на самом деле отвалился по таймауту (в ядре и прислал ECONNRESET) браузер сам об этом скажет.

★★★★★

Последнее исправление: firkax (всего исправлений: 1)

А если где-то на маршруте стоит -j DROP? А если бэкенд умер под нагрузкой? Да и какой юзер будет ждать 10 минут?

cobold ★★★★★
()
Ответ на: комментарий от cobold

Если стоит DROP то драйвер tcp в ядре спустя настроенное пользователем в sysctl время (почему 10 минут то?) дропнет коннект на уровне юзерспейса и всё норм. Если бекенд умер под нагрузкой то предлагать «попробуйте ещё раз» или что там пишется - определённо плохая идея, лучше ждать пока хоть что-нить ответят либо дропнут коннект. А вот этот принудительный таймаут в js пользователь настроить не может (без митма и патча скриптов на лету).

firkax ★★★★★
() автор топика

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

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Для таких случаев есть tcp-таймауты, они настраиваются по желанию владельца компа. Зачем мне сайтовые скрипты навязывают свои, причём приводящие к десинхронизации (запрос на самом деле уже ушёл и будет обработан, а сайт пишет что он зафейлился)?

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

Ты можешь поставить запрос на 10 минут, а владелец сайта поставит у себя на беке таймаут на 5 минут всё что не обработалось в мусор и сиди жди 5 минут без толку. Т.е. если у него на беке таймаут как на фронте +- погрешность то он всё правильно делает.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 2)
Ответ на: комментарий от peregrine

Речь не про бек про нестабильную связь. Чтоб сервер лора сам лагал я не видел. И если случился таймаут на сервере он об этом сообщит кодом 5хх, дублировать это в js смысла нет. А вот когда запрос ждёт включения инета чтоб отправиться (у меня будет ждать хоть час, если я его вручную не отменю) - то почти везде это работает нормально, браузер ждёт (он видит открытый коннект до локальной прокси, который не рвётся) и не вставляет свои таймауты, но лоровский js зачем-то вставляет.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

Чтоб сервер лора сам лагал я не видел

а я видел

peregrine ★★★★★
()

зачем вообще нужна сторона js?

mittorn ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.