beforeSend in $ .getJSON

8

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=" Ссылка "

    
Quintin Par 28.11.2009, 14:01
quelle

5 Antworten

28

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 .

%Vor%     
jpsimons 28.11.2009, 22:40
quelle
5

$. 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.

    
PetersenDidIt 28.11.2009 22:14
quelle
1

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.

    
Nick Craig-Wood 28.11.2009 17:11
quelle
1

Ich denke, Sie verwenden JSONP zum Aufruf eines Skripts von einem anderen Server. Ich habe meine Hausaufgaben gemacht und es gibt keine vorSend Event auf JSONP Anruf.

    
Kreker 20.07.2010 07:49
quelle
1

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%     
DDN-Shep 16.10.2014 12:58
quelle

Tags und Links