Manipular resposta XMLHttpRequest com dados grandes

No Chrome, configurei umXMLHttpRequest:

const xhr = new XMLHttpRequest();
xhr.open(method, url, true);
...
xhr.onreadystatechange = () => {
    if (xhr.readyState === XMLHttpRequest.DONE) {
      if (isStatusCodeSuccess(xhr.status)) {
        // handle response;
      } else {
        // handle error
      }
    }
};
xhr.addEventListener('progress', event => {
    console.log(event.loaded, event.target.response.length);
});
xhr.send(data);

Em algum momento, solicito alguns dados JSON cujo tamanho total é de cerca de 295 MB não compactado / 5,8 MB compactado. Infelizmente, quando o código a seguir é chamado com êxito, a resposta é uma sequência vazia.

Usando o ouvinte de eventos de progresso, posso ver que a resposta é tratada corretamente, pedaço por pedaço, até um determinado ponto. Aqui está um trecho dos logs do console que ele produz:

32768 32768
4639135 4639135
7376739 7376739
11525403 11525403
...
261489180 261489180
264684030 264684030
267880247 267880247
271037819 0
274232442 0
277428774 0
...
304018210 0
309230213 0
310445469 0

Parece que há uma limitação de cadeia / alocação no Chrome, mas não recebo nenhum erro.

No firefox, recebo o seguinte erro:InternalError: allocation size overflow.

Tentei armazenar o resultado, mas não consigo "esvaziar" o objeto Xml Http Request, pois os atributos são somente leitura.

Qual é a limitação oficial para variáveis em navegadores? Não consegui encontrar uma resposta oficial, apenas algumas experimentaisLimite de tamanho de string Javascript: 256 MB para mim - é o mesmo para todos os navegadores?

Existe alguma maneira de solucionar esse problema e lidar com grandes resultados do POST? além de usar o WebSocket.

Estou pensando em:

tipo de conteúdo específico para transmitir os dados, como oapplication/octet-streamparâmetro específico para manipular os dados por partes, como oalcance cabeçalho, embora o conteúdo que estou buscando não seja estático (ele muda com o tempo)algoritmo conhecido para reduzir o comprimento da resposta JSON, onde posso descompactar parte por parte dos dados para evitar atingir a limitação acima

questionAnswers(1)

yourAnswerToTheQuestion