Я работаю над веб-приложением, которое должно обрабатывать большие объемы данных с сервера.
Данные могут быть «потоковыми» и обрабатываться порциями, поэтому для ускорения я разбиваю данные на пакеты и загружаю каждый пакет с помощью ajax.
Я использую обещания javascript для отправки следующего ajax-запроса, когда предыдущий получает его данные.
Каждый пакет составляет около 300 КБ, и обычно их 20.
Теперь мой вопрос: когда у меня нет разбитых пакетов (т.е. я загружаю один файл размером 6 МБ), моему браузеру / сети требуется около 4 секунд, чтобы это сделать.
Однако, когда я разбиваю его на пакеты, браузеру требуется около 8 секунд, чтобы загрузить все пакеты, даже если размер файла в конечном итоге одинаков.
Я ожидал, что при каждом запросе при отправке новых заголовков http будут некоторые издержки ... но удвоение скорости было шоком.
Я пытался перенести запросы ajax на веб-работника, думая, что основной поток, возможно, задерживает их, но происходит то же самое.
Есть ли способ ускорить этот процесс или существуют какие-либо протоколы javascript, которые позволили бы сохранить соединение открытым.
Я знаю, что браузер может делать это с потоковым видео, но я не знаю, как использовать этот протокол с двоичными пакетами.