¿Es posible abortar () una carga jQuery ()?

En jQuery Load no puede aplicar jQuery diferido, por lo que lo que queda es solo una función de devolución de llamada que debe implementar.

Dado que su archivo JSON es de un tamaño muy grande (como se indica en la pregunta), su función de devolución de llamada se llamará solo cuando se llame a todo el JSON, lo que puede tomar 2, 3, 5, 10 … segundos, dependiendo de la velocidad del servidor.

Veamos esto con el ejemplo:

Tengo que cargar un archivo JSON muy grande que puede tardar unos 3 segundos en cargarse cuando uso el método de carga jQuery.

En esta situación, primero carga este JSON en un div y luego espera 3 segundos, luego de estos 3 segundos comienza el procesamiento.

  • ↓ Cargando JSON a un div
  $ ("# jSonDiv"). load ("file.json", function (respuesta, estado, xhr) {
     if (estado == "error") {
         // hacer código
     }
     más {
         // hacer código
     }    
 });

Vea el ↑ arriba si la condición en la función de devolución de llamada. Si no recibo un error en mi objeto de estado, entonces puedo hacer el procesamiento del archivo JSON que está cargado en el momento en #jSonDiv .

Sí, $.get() hará el truco. InnerHTML del navegador analiza la respuesta html de dicha llamada, por lo que solo necesita insertar la respuesta en un nodo DOM falso. Esta es precisamente la implementación de .load() . Entonces necesitas tu devolución de llamada $.get() para hacer algo como:

 function(resHTML) { $('#target').html( $("
") .html( resHTML.replace(//gi, "") ) .find("#content") ); }