O Chrome para ao fazer várias solicitações ao mesmo recurso?

Estou tentando implementar uma pesquisa longa pela primeira vez e estou usando objetos XMLHttpRequest para fazer isso. Até agora, consegui obter eventos no Firefox e no Internet Explorer 11, mas o Chrome estranhamente é o estranho desta vez.

Eu posso carregar uma página e ela funciona muito bem. Ele faz a solicitação imediatamente e começa a processar e exibir eventos. Se eu abrir a página em uma segunda guia, uma das páginas começará a sofrer atrasos no recebimento de eventos. Na janela de ferramentas de desenvolvimento, vejo várias solicitações com esse tipo de tempo:

"Parado" varia até 20 segundos. Isso não acontecerá em todas as solicitações, mas geralmente ocorrerá em várias solicitações consecutivas e em uma guia.

No começo, pensei que esse era um problema com o meu servidor, mas então abri duas guias do IE e duas do Firefox, e todas elas se conectam e recebem os mesmos eventos sem parar. Somente o Chrome está tendo esse tipo de problema.

Acho que isso provavelmente é um problema com a maneira como estou fazendo ou atendendo à solicitação. Para referência, os cabeçalhos da solicitação são assim:

Connection: keep-alive
Last-Event-Id: 530
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
Accept: */*
DNT: 1
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8

A resposta é assim:

HTTP/1.1 200 OK
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: text/event-stream
Expires: Tue, 16 Dec 2014 21:00:40 GMT
Server: Microsoft-HTTPAPI/2.0
Date: Tue, 16 Dec 2014 21:00:40 GMT
Connection: close

Apesar dos cabeçalhos envolvidos, não estou usando o EventSource nativo do navegador, mas um polyfill que permite definir cabeçalhos adicionais. O polyfill está usando XMLHttpRequest nos bastidores, mas parece-me que não importa como a solicitação esteja sendo feita, ela não deve parar por 20 segundos.

O que pode estar fazendo com que o Chrome pare assim?

Editar: A página chrome: // net-internals / # events do Chrome mostra que há um erro de tempo limite envolvido:

t=33627 [st=    5]      HTTP_CACHE_ADD_TO_ENTRY  [dt=20001]
                --> net_error = -409 (ERR_CACHE_LOCK_TIMEOUT)

A mensagem de erro refere-se a um patch adicionado ao Chrome seis meses atrás (https://codereview.chromium.org/345643003), que implementa um tempo limite de 20 segundos quando o mesmo recurso é solicitado várias vezes. De fato, um dos erros que o patch tenta corrigir (bug 46104) refere-se a uma situação semelhante, e o patch devereduzir o tempo gasto esperando.

É possível que a resposta (ou solução alternativa) aqui seja apenas para fazer com que as solicitações pareçam diferentes, embora talvez o Chrome possa respeitar o cabeçalho "sem cache" que estou definindo.

questionAnswers(3)

yourAnswerToTheQuestion