Ich benutze Ajax mit jQuery auf meiner Website und muss einen Fortschritt/Lade-Indikator zeigen.Laden Indikator auf synchronem Ajax
Mein dilemna ist dies:
- Synchrone AJAX sperrt den Browser, so dass ich kann nichts tun (zB eine Ladeanzeige zeigen) bis der Inhalt zurückgegeben werden, in welcher Zeit es zu spät ist
- I JSON als Rückgabedatentyp verwenden und Asynchron-Einstellung = true gibt eine leere Antwortstring
- meinen ganzer Rahmen auf dem Rückgabetyp setzt
JSON-formatiert werden kann ich nicht scheinen, um JS zu finden, um dem Benutzer einen Hinweis zu geben, dass etwas in Bearbeitung ist, außer um eine Warnung() zu geben. (Aus irgendeinem Grund funktioniert eine Warnung).
Irgendwelche Vorschläge?
Mein Code:
JS
var jqXHR = $.ajax(
{
type: "POST",
url: url,
cache: false,
data: params, // array of parameters
async: false, // responseText is empty if set to true
dataType: 'json',
error: function()
{
alert("Ajax post request to the following script failed: " + url);
}
});
var html = jqXHR.responseText;
PHP
$return = array();
$return['status'] = 1;
$return['message'] = "some html here ...";
echo json_encode($return);
danke für den Vorschlag. Ich habe das versucht, aber ich bekomme einen leeren Antworttext, während der Rest des Codes zu laufen scheint, versuche, Antworttext von einer Ajax-Funktion zu holen, die noch nicht ausgeführt wurde, und scheitert. es ist leider nicht praktisch, Timeout auf all meinen anderen Code zu setzen, da der Code, der den ResponseText packt, im ganzen System ist ... –
nun, ich benutze eine Zeitüberschreitung und patche alle meinen Code, und es funktioniert gut. Also danke, dass du mir einen Tipp gegeben hast, um mich dorthin zu bringen (würdest du abstimmen, aber nicht genug Reputationspunkte haben!) –
Danke! Es funktioniert ... – maverabil