Re: keep-alive для ajax запросов
От: loginx  
Дата: 10.02.18 11:20
Оценка: +1
Здравствуйте, Anton Batenev, Вы писали:

AB>Есть сервер на соседнем континенте до которого большой RTT


А если через вебсокет и/или вебртк пробовали? лучше реакция?
keep-alive для ajax запросов
От: Anton Batenev Россия https://github.com/abbat
Дата: 08.02.18 20:54
Оценка:
Hello!

Есть сервер на соседнем континенте до которого большой RTT и есть веб-страница, которая использует много ajax запросов, которые из за большого RTT делают интерфейс сильно неотзывчивым. Существует ли какой-нибудь способ заставить ajax запросы использовать одно keep-alive соединение (или пул подобных соединений как это делает браузер при загрузке страницы), чтобы не тратить время на TLS-handshake на каждый ajax-запрос?
Бэкапимся на Яндекс.Диск
Re: keep-alive для ajax запросов
От: wildwind Россия  
Дата: 09.02.18 04:47
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Существует ли какой-нибудь способ заставить ajax запросы использовать одно keep-alive соединение (или пул подобных соединений как это делает браузер при загрузке страницы), чтобы не тратить время на TLS-handshake на каждый ajax-запрос?


HTTP/2?
Re[2]: keep-alive для ajax запросов
От: Anton Batenev Россия https://github.com/abbat
Дата: 09.02.18 10:51
Оценка:
Здравствуйте, wildwind, Вы писали:

w> AB>Существует ли какой-нибудь способ заставить ajax запросы использовать одно keep-alive соединение (или пул подобных соединений как это делает браузер при загрузке страницы), чтобы не тратить время на TLS-handshake на каждый ajax-запрос?

w> HTTP/2?

HTTP/2 сервером поддерживается (по крайней мере в объеме модуля http2 из nginx), но разработка говорит, что все равно медленно. Оно должно из коробки работать или все же требуется доработка на стороне js?
Re[3]: keep-alive для ajax запросов
От: wildwind Россия  
Дата: 09.02.18 17:34
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>HTTP/2 сервером поддерживается (по крайней мере в объеме модуля http2 из nginx)

"Поддерживается" это одно, а "реально используется" совсем другое. Посмотри в DevTools на запросы, там должно быть показано.

AB>но разработка говорит, что все равно медленно.

Ну с большим RTT чудес не ждите.

AB>Оно должно из коробки работать или все же требуется доработка на стороне js?

Должно работать, если поддерживает сервер и браузер и ничто не мешает.

Но доработка скорее всего потребуется. Тут ситуация примерно та же, как с оптимизацией SQL запросов. Нужно находить узкое место, а оно может оказаться где угодно, да не одно.
Re: keep-alive для ajax запросов
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.02.18 06:28
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Hello!


AB>Есть сервер на соседнем континенте до которого большой RTT и есть веб-страница, которая использует много ajax запросов, которые из за большого RTT делают интерфейс сильно неотзывчивым. Существует ли какой-нибудь способ заставить ajax запросы использовать одно keep-alive соединение (или пул подобных соединений как это делает браузер при загрузке страницы), чтобы не тратить время на TLS-handshake на каждый ajax-запрос?

Ну, обычно в браузерах AJAX реквесты ведут себя ровно так же, как и "обычные" запросы. То есть удерживается пул из 2-4 соединений.
Поэтому я бы для начала потрассировал запросы на стороне сервера, чтобы убедиться, что
а) действительно одна страница порождает много параллельных запросов
б) действительно SSL handshake играет значительную роль во времени отклика.

Я интуитивно ожидаю строго обратного — что запросы идут через 1-2 соединения, и именно из-за этого, а не из-за SSL handshake теряется время.
Тогда единственный шанс — переделывать приложение, обучая его делать меньше более крупных запросов.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.