2016-09-25 2 views
0

Ich habe einen folgenden Code, um das Bild des Seitenladeprogramms auszublenden, wenn die Seite vollständig geladen ist (einschließlich eines ausstehenden Ajax-Aufrufs).Wie überprüft man, ob ein Ajax Cal erstellt wurde und wann es fertig war

$('document').ajaxStop(function() { 
    // place code to be executed on completion of last outstanding ajax call here 
    $(".se-pre-con").fadeOut("slow"); 
    }); 

Es funktioniert gut. Einige Seiten auf der Website haben jedoch keine AJAX-Aufrufe und dieser Code wird nicht ausgeführt.
Also brauche ich einen Code, um zuerst zu überprüfen, ob es einen Ajax-Aufruf auf der aktuellen Seite gibt, wenn ja, dann überprüfe, ob er fertig ist und führe diesen Code aus, um das Ladebild auszublenden.

+0

Verwenden Debugger-Tools wie fiddler.which verfolgt alle Anfragen und Antworten http://www.telerik.com/fiddler – Aravind

+0

@Aravind: Spuren zu halten, ist hier nicht das Thema – sohal07

+0

Verwenden Sie dieses Werkzeug und u wissen, ob Diese Seite hat Ajax Cal und der Status-Code, der diesem Ajax-Aufruf entspricht, sagt dir, ob es abgeschlossen ist oder nicht. Dadurch wissen Sie, auf welcher Seite der AJAX-Aufruf erfolgt. Verwenden Sie dann die Entwicklertools und F10, um jede Zeile im Code zu analysieren und festzustellen, wo der Aufruf erfolgt. Verwenden Sie abschließend diesen Link http://api.jquery.com/ajaxcomplete/, um Ihre Aufgabe zu erfüllen. – Aravind

Antwort

0

Ja, können Sie immer Methode wie diese

var jqxhr = $.ajax("example.php") 
// if success 
.done(function() { 
    alert("success"); 
}) 
// if failed 
.fail(function() { 
    alert("error"); 
}) 
// or use always for completed request 
.always(function() { 
    alert("complete"); 
}); 

Hoffnung verwenden diese Hilfe :)

+0

Bu einige Seiten haben bis zu 5 separate Ajax Anrufe – sohal07

1

Wenn Sie den Loader standardmäßig verstecken und dann ajaxStart es zu zeigen, verwenden und wieder auszublenden auf ajaxStop es sollte tun, was Sie wollen (glaube ich)

.se-pre-con { display : none; } 

und

$(document).ajaxStart(function() { 
    $(".se-pre-con").show(); 
}).ajaxStop(function() { 
    $(".se-pre-con").fadeOut("slow"); 
}); 
Verwandte Themen