Tach!
Nein, das geht nicht. Ein "warte bitte" gibt es nicht, weder in jQuery noch in Javascript. Es gibt nur Callbacks, die man ausführen lässt, wenn etwas anderes fertig ist. doch, es gibt für den Ajax-Aufruf in jQuery den Parameter "async", den der TO hier sogar auf false setzt. Dies bewirkt, dass der Browser mit der Ausführung des nachfolgenden Codes wartet, bis der Response eingetroffen ist. Was allerdings nicht empfohlen wird, da dann bis zum Response der komplette Browser blockiert ist.
Ah, das "async: false" hatte ich ausgeblendet. Danke fürs aufzeigen. Das ändert einiges. Der success-Callback ist nicht mehr notwendig. Wenn er doch verwendet wird, ändert sich aus Prgrammierersicht nichts im Vergleich zu asynchronen Aufrufen. Jetzt anders bei synchronem Aufruf ist, dass der $.ajax-Aufruf() erst nach dem Empfang der Response endet und als Funktionsergebnis ein (modifiziertes) XHR-Objekt zurückgibt. Das kann man in Empfang nehmen und gleich auf die Eigenschaft responseText zugreifen. Vorher sollte man aber noch selbst den Status prüfen, denn das hätte sonst $.ajax() gemacht, indem es den jeweiligen Callback (success/error) aufruft.
var xhr = $.ajax({..., async: false /*kein success: ... */}); console.log(xhr.responseText);
Dem TO hilft es hier ohnehin nicht, weil das alert sich ja auch außerhalb es ready-Events befindet.
Im Originalposting ja. Aber wenn man es innerhalb der DOM-Ready-Funktion aufruft und success() nicht verwendet, sollte es gehen.
Die generelle Frage ist, ob der synchrone Aufruf Punkte bringt. Vermutlich ja, weil die Anwendung durch die nicht vorhandene Texte sowieso nicht benutzbar ist und das ganze Javascript-Zeug auch erst nach success() losläuft. Da kann man gleich synchron warten. Ein asnychroner Aufruf hätte wohl nur den Vorteil, dass man eine Pausenclown-Animation laufen lassen kann.
dedlfix.