¿Qué significa estado = cancelado para un recurso en Chrome Developer Tools?

Resuelto styfle asked hace 12 años • 35 respuestas

¿Qué causaría que se cancelara una página? Tengo una captura de pantalla de las herramientas para desarrolladores de Chrome.

Recurso cancelado

Esto sucede a menudo pero no siempre. Parece que una vez que se almacenan en caché algunos otros recursos, una actualización de la página cargará LeftPane.aspx. Y lo que es realmente extraño es que esto sólo sucede en Google Chrome, no en Internet Explorer 8. ¿Alguna idea de por qué Chrome cancelaría una solicitud?

styfle avatar Aug 17 '12 23:08 styfle
Aceptado

Luchamos contra un problema similar en el que Chrome cancelaba solicitudes para cargar cosas dentro de marcos o iframes, pero solo de forma intermitente y parecía depender de la computadora y/o de la velocidad de la conexión a Internet.

Esta información está desactualizada por algunos meses, pero construí Chromium desde cero, busqué en la fuente para encontrar todos los lugares donde las solicitudes podrían cancelarse y establecí puntos de interrupción en todos ellos para depurar. De memoria, los únicos lugares donde Chrome cancelará una solicitud:

  • El elemento DOM que provocó que se realizara la solicitud se eliminó (es decir, se está cargando un IMG, pero antes de que ocurriera la carga, eliminó el nodo IMG)
  • Hiciste algo que hizo que cargar los datos fuera innecesario. (es decir, comenzó a cargar un iframe, luego cambió el src o sobrescribió el contenido)
  • Hay muchas solicitudes dirigidas al mismo servidor y un problema de red en solicitudes anteriores mostró que las solicitudes posteriores no iban a funcionar (error de búsqueda de DNS, se produjo (la misma) solicitud anterior, por ejemplo, código de error HTTP 400, etc.)

En nuestro caso, finalmente lo rastreamos hasta un fotograma intentando agregar HTML a otro fotograma, lo que a veces ocurría incluso antes de que se cargara el fotograma de destino. Una vez que tocas el contenido de un iframe, ya no puede cargar el recurso en él (¿cómo sabría dónde colocarlo?), por lo que cancela la solicitud.

whamma avatar Nov 19 '2012 17:11 whamma

status=canceled también puede ocurrir en solicitudes ajax en eventos de JavaScript:

<script>
  $("#call_ajax").on("click", function(event){
     $.ajax({
        ...    
     });
  });
</script>

<button id="call_ajax">call</button> 

El evento envía correctamente la solicitud, pero se cancela (pero el servidor la procesa). La razón es que los elementos envían formularios en eventos de clic, sin importar si realiza alguna solicitud ajax en el mismo evento de clic.

Para evitar que se cancele la solicitud, event.preventDefault();se debe llamar a JavaScript:

<script>
  $("#call_ajax").on("click", function(event){
     event.preventDefault();
     $.ajax({
        ...    
     });
  });
</script>
fuco avatar Jun 05 '2014 13:06 fuco