Nach einigen Nachforschungen habe ich den Titel der Frage aktualisiert. Bitte beachten Sie meine Updates unten.
Ursprüngliche Frage:
Ich erstelle eine Website mit WordPress und verwende manchmal asynchrone Aufrufe an WP-REST-API-Endpunkte.
Der Aufruf dieser Endpunkte aus meinen AJAX-Funktionen führt oft zu TTFB-Zeiten von mindestens ~780ms:
Aber wenn ich die URL/den Endpunkt direkt im Browser öffne, bekomme ich TTFB-Zeiten, die 4-5 mal schneller sind:
Ich frage mich, woher die Verzögerungen kommen. Ich betreibe diese Seite auf meinem lokalen Entwicklungsserver mit aktiviertem Apache 2.4, HTTP/2 und PHP 7.
Was ist der beste Weg, um solche Leistungsprobleme zu überwachen?
Bitte beachten Sie: Ich bin nicht mit der eingebauten AJAX-Funktionalität von WordPress. Ich rufe nur so etwas an
axios.get(`${url}/wp-json/wp/v2/flightplan`)
innerhalb einer React-Komponente, die ich in mein Homepage-Template gemountet habe.
Aktualisieren
Verdammt interessant: Das Löschen von Cookies reduziert TTFB viel:
Aktualisierung 2
Nach dem Entfernen der anderen beiden AJAX-Aufrufe wird die flightplan
Anfrage wird viel schneller ausgeführt. Ich denke, es gibt einige Probleme mit gleichzeitigen AJAX-Anfragen. Ich habe ein wenig über das Sperren von Sitzungen gelesen, aber da WordPress und alle installierten Plugins keine Sitzungen verwenden, kann dies nicht der Grund sein.
Aktualisierung 3
Definitiv hat es etwas mit meinem lokalen Server-Setup zu tun. Habe die Seite gerade auf einem “echten” Webserver bereitgestellt:
Aber es wäre trotzdem interessant zu wissen, wie man einen Server einrichtet, der gleichzeitig besser umgehen kann.
Aktualisierung 4
Ich habe einen kleinen Test gemacht: 4 Dummy-Requests aufrufen, bevor die “echten” aufgerufen werden. Das Skript gibt nur einen “Foobar”-String zurück. Zur Zeit sieht alles gut aus:
Aber beim Hinzufügen sleep(3)
zum Dummy-AJAX-Skript, alle anderen Anfragen dauern auch viel länger:
Wieso den?