Ilya
Вызвать метод abort так сложно, что это как три этапа
Aleksei
сам то читаешь что кидаешь? я тут три запроса насчитал
Alexey
просто удаляются таски из очереди
Aleksei
и чо
Ilya
Ilya
Разницу понимаем?
Aleksei
Ilya
Peter
и чо
то, что при abort() нету никаких накладных расходов по сравнению с игнорированием данных
Ilya
Советую понять, как работает TCP, прежде чем спорить
Ilya
Еще лучше
Alexey
Alexey
из очереди
Ilya
Но проще просто формошлепить
Alexey
но ничего про дроп самого соединения
Alexey
так что даже если вы хренанете abort, он отрабатывает только на стороне клиента
Kirill
Alexey
мне кажется "The user agent should cancel any network activity for which the object is responsible." не подразумевает закрытие соединения
Alexey
хотя, Денис прав
Alexey
надо просто открыть wireshark
Alexey
и поставить точку одним скрином 🙂
Alexey
¯\_(ツ)_/¯
Kirill
В любом случае соединение то по факту закрывается и сервер может это событие отловить, не знаю как на других серваках но на ноде точно
Alexey
может тут найдется кто-нибудь, кому не лень проверить?
Alexey
мне было бы интересно узнать реальный расклад
Alexey
о, было бы здорово
Alexey
узнаю что-нибудь новое сегодня 🙂
Peter
Peter
Alexey
ага, только где про этот алгоритм в 3.6.1?
Alexey
сорян, 3.6.5 🙂
Alexey
> Cancels any network activity.
Alexey
кстати, там написано "should" (при чем выделено)
Kyrylo
таак
Kyrylo
Я не поленился
Kyrylo
🙂
Alexey
а значит, разные браузеры могут работать по-разному
Alexey
оооо
Alexey
вещай!
Kyrylo
const express = require('express')
const app = express()
app.get('/', function (req, res) {
res.send('Hello World!')
})
app.get('/test', function (req, res) {
console.log('opened');
req.on('close', err => {
console.log('closed');
})
})
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})
Kyrylo
var xhr = new XMLHttpRequest(),
method = "GET",
url = "/test";
xhr.open(method,url,true);
xhr.send();
undefined
Kyrylo
xhr.abort();
Kyrylo
Kyrylo
сервер легко узнает об abort
Alexey
ок, получается abort-таки оповещает сервак об отмене
Alexey
закрывая сокет
Alexey
вопрос закрыт 🙂
Kyrylo
получается
Alexey
спасибо за тест 🙂
Alexey
теперь я знаю чуточку больше
Kyrylo
мне самому стало интересно
Alexey
знаешь что ещё интересно )
Aleksei
прикольно, тоже нового узнал)
Ilya
Ну ее же читать надо
Kyrylo
мне просто надо было скоротать 15 мин до 4-20
Peter
они просто допускают ситуацию, что браузер при аборте не рвёт tcp-соединение
Alexey
доверяй, но проверяй
Peter
ну, есть же keep-alive соединения
Peter
про лимиты я упоминал, да
Peter
да и у клиента (браузера) могут быть лимиты
Aleksei
предлагаю тебе в след раз не упоминать какой ты умный, а нормально объяснять если ты хорошо разбираешься в какой то теме
Ilya
У NAT такая же штука
Ilya
То есть в публичном вайфае пул коннекшнов забьется супербыстро
Ilya
Alexey
кстати
Alexey
тут cancel в фетч подвезли
Alexey
детали в треде https://github.com/whatwg/fetch/issues/447
Ilya
Aleksei
итак без наездов)
Aleksei
я на будущее говорю
Aleksei
камон, я не хочу сейчас перебирать кто что писал)
Aleksei
это конечно если все на потоках/процессах построено)
Aleksei
не, ну вот есть на джаве у тебя сервак, который так же потоки создает, то что будет
Aleksei
ну факт то все равно, что тебе нужно на каждый запрос обрабатывать такую ситуацию