Ich verwende eine einfache jQuery AJAX-Funktion, die beim ersten Aufruf extrem langsam (10-15 Sekunden) läuft und dann jedes Mal, wenn sie nach dem ersten Mal aufgerufen wird, normal bei & lt; 1 - 2 Sekunden läuft. Ich kann nicht herausfinden, warum das passiert, aber ich muss es so schnell wie möglich beschleunigen. Hier ist die Funktion:
%Vor%Ein Beispiel für eine API, an die ich eine Anfrage stelle, ist die API von Giphy. Ich bin nicht davon überzeugt, dass dies ein Serverproblem ist, weil es nur beim ersten Aufruf der API passiert und dann die nachfolgenden Aufrufe schnell sind.
Irgendwelche Ideen, warum das passiert und was getan werden kann, um das schneller zu machen?
Betrachtet man das ganze Problem, könnte Javascript (Client-Seite) + API (Server-Seite) die Diagnose des Problems erschweren, so dass mein Vorschlag, eine spezifischere Antwort zu erhalten, darin besteht, das Problem zuerst zu isolieren.
Beantwortung Ihrer allgemeinen Frage, Gründe warum?: Es könnte eine Menge Dinge sein, aber die bemerkenswerten sind:
Diagnostizieren (Isolation): Messen Sie die Zeit, die jeder Schritt benötigt, es könnte ein einfacher Ausdruck Ihrer aktuellen Zeit sein. Ich würde es in den folgenden Schritten brechen:
HINWEIS: Die Schritte 2 und 3 könnten zusammengehen.
Wie kann dies verhindert werden? (Es löst das Problem nicht, sondern mildert es):
Das könnte ein langer Schuss sein. "appendToWrapper" ist ein Objekt, das als Referenz übergeben wird. Wenn es eine lange Zeit dauert, das Problem zu lösen (dh es dauert etwa 10 Sekunden, um ".game_play_area" usw. im DOM zu finden), wäre es beim ersten Mal langsam, aber in der aufrufenden Funktion und in den schnellen Folgezeiten gespeichert.
Es könnte leicht zu überprüfen sein. Wenn Sie eine tiefe Kopie des Objekts erstellen könnten, bevor Sie es übergeben, würden wir erwarten, dass der AJAX jedes Mal langsam ist, nicht nur beim ersten Mal. Wenn dies der Fall ist, müssten Sie Ihre Selektoren bereinigen, um sie schneller zu machen. Vielleicht verwenden Sie IDs anstelle von Klassen.
Tags und Links javascript jquery ajax