Wie verwende ich beforeSend
Callback in $.getJSON
(domänenübergreifend).
Genauer gesagt ist $.getJSON
Aufruf an einen YQL-Dienst
Wie
Wählen Sie * aus html where url=" Ссылка "
Der einzige Zweck von beforeSend besteht darin, auf das rohe XHR-Objekt zuzugreifen (normalerweise, um HTTP-Header darauf zu setzen). Sie brauchen es nicht, um Spinner und ähnliches loszuwerden. Dieser Code hier (von @petersendidit):
%Vor%Ist besser so geschrieben:
%Vor% Was bedeutet, dass, wenn Sie keine erweiterten Optionen in jQuery.ajax benötigen, Ihr ursprünglicher Plan, jQuery.getJSON zu verwenden, in Ordnung ist. Du sagst also, du willst ein loading GIF zeigen, mach das einfach und vergiss beforeSend
.
$. getJSON ist nur eine Abkürzung für die Funktion $ .ajax
%Vor%Also, wenn Sie jemals etwas mehr tun müssen, dann verwenden Sie einfach die grundlegenden getJSON-Aufrufe $ .ajax wie:
%Vor%Die andere Option besteht darin, die $ .ajaxSend und die $. ajaxComplete Funktionen, aber dies wird dazu führen, dass diese Funktionen vor und nach jedem Ajax-Aufruf aufgerufen werden.
Ich denke, Sie möchten $ .ajaxStart () und $ .ajaxStop () . Damit können Sie ein Lade-GIF auf Ajax / JSON-Anfragen anzeigen und ausblenden. Es macht auch das Richtige, wenn es mehrere Ajax-Anfragen gibt.
Die korrekte Methode besteht darin, den beforeSend-Callback zu verwenden, da der vollständige Callback bei zwischengespeicherten Abfragen nicht aufgerufen wird, da eine Anfrage in dieser Instanz nicht gesendet wird, daher wird auch vorSend nicht aufgerufen.
Wenn Sie ein Ladebild anzeigen, bevor Sie Ihre $ .Ajax-Anfrage erstellen und darauf vertrauen, dass diese nach Abschluss der Anfrage versteckt wird, bleibt das geladene Bild bei "Zwischenspeichern" auf "show" hängen.
>Das ist also die richtige Methode;
%Vor%Tags und Links javascript jquery callback